我应该如何在临时表中创建和填充数据?那么如何打印在临时表上检索到的数据?我看到了这样的例子;但没有进一步的帮助。所以我需要一些帮助。
SELECT DISTINCT * FROM Table INTO TEMP Temp1;
您可以像从任何其他表中一样选择数据:
SELECT * INTO r_temp1.* FROM Temp1
或为此类语句定义游标,并使用 FOREACH 循环,或...
诀窍是您需要在编译时知道 Temp1 中的列将是什么。在这种情况下,您可以使用:
DEFINE r_temp1 RECORD LIKE Table.*
在更一般的情况下,您可能会从相关的零碎中手动组装记录:
DEFINE r_temp1 RECORD
col1 LIKE Table1.ColumnA,
col2 LIKE Table2.ColumnB,
...
colN LIKE TableZ.ColumnZ
END RECORD
我创建了以下可以调用的函数,传入临时表名称:
function unload_temp(l_table)
define
l_table char(20),
l_file char(20),
str char(512)
let l_file = l_table clipped, ".out"
let str = "select * from ",l_table clipped
whenever error continue
prepare stmt_table_exists from str
whenever error stop
#Return if table does not exist
if sqlca.sqlcode = -206
then
return
end if
unload to l_file delimiter "|" str
end function #unload_temp()
这将创建一个名为tableName.out
.
这在调试时非常有用,并且您想查看临时表在运行程序的中间的样子。