以下 我想做一个W_TEMP的表
从CUR_TEMP_TABLE里面取得A 放到W_TEMP表里的A这个字段
现在编译出错 不让返回一个TABLE
要求返回一个TABLE 做法不限但是要在FUNCTION里面 谁帮帮我啊
CREATE OR REPLACE FUNCTION KANRI(
    I_DATE   IN CHAR)
RETURN  W_TEMP TABLE
IS
TYPE W_T IS TABLE OF M_TABLE%ROWTYPE INDEX BY BINARY_INTEGER;
W_TEMP  W_T;
W_COUNT NUMBER DEFAULT 1;
BEGIN
    FOR CUR_TEMP_TABLE(
       SELECT T.A
       FROM   T
    )LOOP
       W_TEMP(W_COUNT).A := CUR_TEMP_TABLE.A;
       W_COUNT := W_COUNT + 1;
     END LOOP;
RETURN W_TEMP;
END

解决方案 »

  1.   

    首先FUNCTION返回内型没有TABLE 只有自己定义
    方法如下  你在FUNCTION里返回一个自定义表`如 return table_040_REASON;
    然后你再建一个OBJECT  如 create or replace type typ_040 as object  注意放在TYPES 下
    里面放入对表的定义 如 create or replace type typ_040_REASON as object
     (
      REASON1        varchar2(40),
      REASON2        varchar2(40),
      REASON3        varchar2(40),
      REASON4        varchar2(40),
      REASON5        varchar2(40)
     )OVER
      

  2.   

    代码资料挺全,推荐一下:http://www.ciitc.com
      

  3.   

    如二楼
    返回游标在你的函数里定义游标
    Cursor CursorName Is
      Select colName From TableName ;
      

  4.   

    look here:
    http://blog.csdn.net/zhpsam109/archive/2008/03/25/2215490.aspx
      

  5.   

    找了一下 好象是不可实现的
    只能返回ROWTYPE了
    谢谢以上各位