【问题标题】:Fetching data into local table type将数据提取到本地表类型
【发布时间】:2013-08-14 14:57:14
【问题描述】:

总的来说,我需要调用一个将表类型作为参数的函数。我需要在打电话之前把它填满,这就是我有问题的地方。

类型定义如下:

create or replace TYPE MY_OBJ IS OBJECT(field1 NUMBER(10), field2 NUMBER(10), field3 VARCHAR2(2));
create or replace TYPE "MY_OBJ_ARRAY_TYPE" IS TABLE OF MY_OBJ;

我的程序如下:

DECLARE
  -- ...
  v_temp_table MY_OBJ_ARRAY_TYPE;
  -- ...
BEGIN
  v_temp_table := MY_OBJ_ARRAY_TYPE();

  -- the following is incorrect
  SELECT field1, field2, field3
    BULK COLLECT INTO v_temp_table
    FROM table1;

  -- ... call the function here with v_temp_table as parameter
END;

SELECT INTO 方法:

SELECT INTO TABLE(v_temp_table) (field1, field2, field3)
    VALUES (f1, f2, f3)
    FROM table1;

我不确定正确的语法应该是什么,v_temp_table 未被识别为表格。

【问题讨论】:

    标签: sql oracle select stored-procedures


    【解决方案1】:

    试试

      SELECT NEW MY_OBJ( field1, field2, field3)
        BULK COLLECT INTO v_temp_table
        FROM table1;
    

    【讨论】:

      猜你喜欢
      • 2021-02-11
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      相关资源
      最近更新 更多