1

我应该如何在临时表中创建和填充数据?那么如何打印在临时表上检索到的数据?我看到了这样的例子;但没有进一步的帮助。所以我需要一些帮助。

      SELECT DISTINCT * FROM Table INTO TEMP Temp1;
4

2 回答 2

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
于 2012-09-24T15:25:42.087 回答
0

我创建了以下可以调用的函数,传入临时表名称:

   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.

这在调试时非常有用,并且您想查看临时表在运行程序的中间的样子。

于 2017-01-30T21:54:37.450 回答