在sql server中就有,oracle我找了很多资料都是说临时表,没有说到表变量的。

解决方案 »

  1.   

    应该是没有和 TSQL 中 TABLE 数据类型完全对应的数据类型,相近的应该是 Record 类型,但只是相当于表中的一行。oracle 中虽然也可以这样:
    TYPE typename IS TABLE OF typename。
    但他只是 collection(集合) 的一种。
      

  2.   

    可以用define 定义全局变量和局部变量
      

  3.   

    不是指rowtype。
    例如:在存储过程中从一些表中检索数据,然后做了处理,就放到这个表变量中,最后返回这个表变量。
    当然临时表是可以的,但临时表不是在内存的,oracle中表结构要自己drop,所以不想用临时表。就想用像sql server中的表变量。
    to:未来战士  你可否说详细点,不明白你的意思。
      

  4.   

    我理解楼主的意思是存储过程返回一个数据集合?如果确实是这样的话,我觉得可以以如下两种方式解决
    1.将存储过程中检索到的数据拼装成字符串,返回。
    2.如果“在存储过程中从一些表中检索数据,然后做了处理”处理步骤比较简单,可以通过一条SQL语句解决的话,那么可以返回一个游标。即mycursor is select ......的形式。
    各数据库之间存在不少的差异,Oracle没有表变量这么个东西,除非用面向对象的形式(),即1楼所叙述的“TYPE   typename   IS   TABLE   OF   typename。”
      

  5.   

    oracle中的表变量相当于一个记录数组;
    据说这么处理的原因是可以方便java用户的使用;^_^