informix 4GL SE中的临时表创建

时间:2012-09-24 15:17:48

标签: informix 4gl

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

      SELECT DISTINCT * FROM Table INTO TEMP Temp1;

2 个答案:

答案 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的文件。

这在调试时非常有用,您希望在运行程序的中间查看临时表的外观。