我应该如何在临时表中创建和填充数据?那我如何打印临时表上检索的数据?我看到这样的例子;但没有进一步的帮助。所以我需要一些帮助。
SELECT DISTINCT * FROM Table INTO TEMP Temp1;
答案 0 :(得分:1)
您可以像选择任何其他表一样选择数据:
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
答案 1 :(得分:0)
我创建了以下函数,可以在temp-table名称中调用:
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
的文件。
这在调试时非常有用,您希望在运行程序的中间查看临时表的外观。