功能限制影响数据提取功能。
dbisql (Interactive SQL),并且数据提取命令位于命令文件中,则必须先设置 dbisql 选项“显示多个结果集”并使该选项永久有效。如果未设置此选项,则不会创建输出文件。 要设置“显示多个结果集”选项,请在 dbisql 窗口中单击“工具” “选项”,然后选择“显示多个结果集”并单击“设为永久”。
varchar 和 varbinary 数据的缺省行为: 二进制 LOAD TABLE 始终会剪裁 VARCHAR 数据中的空白。如果您具有包含尾随空白的 varchar 数据,则在二进制装载插入时不会保留它们。 在提取期间,尾随零会填补到 varbinary 数据中。例如,在提取期间,将用零填补一个声明为 varbinary(6) 且包含数据 0x1234 的字段,提取后,该字段将作为 0x123400 进行装载。 要更改这些缺省行为,请使用 TEMP_EXTRACT_LENGTH_PREFIX 选项提取数据以及 LOAD TABLE 语句中的 PREFIX TABLE 始终会剪裁 VARCHAR 数据中的空白。如果您具有包含尾随空白的 varchar 数据,则在二进制装载插入时不会保留它们。
设置 TEMP_EXTRACT_NAME1 时,无法执行 INSERT...SELECT。
事件不支持执行将返回结果集的语句。服务器日志会返回类似下面的错误:
Handler for event 'test_ev' caused SQLSTATE '09W03'
Result set not permitted in 'test_ev'
为了通过事件执行查询,请创建一个调用存储过程的事件,然后将存储过程结果插入到临时表中。如果使用提取,则临时表始终为空并且需要的开销很少。
例如:
CREATE PROCEDURE proc1()
BEGIN
SET TEMPORARY OPTION temp_extract_name1 = 'testproc.out';
SELECT * FROM iq_table;
END;
CREATE EVENT "test_ev" ENABLE HANDLER
BEGIN
SELECT * INTO #tmp FROM proc1();
END;
TRIGGER EVENT test_ev;