Sql 将数据提取到本地表类型

Sql 将数据提取到本地表类型,sql,oracle,select,stored-procedures,Sql,Oracle,Select,Stored Procedures,总的来说,我需要调用一个以表类型为参数的函数。在打电话之前我需要加满油,这就是我的问题所在 这些类型的定义如下: 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_t

总的来说,我需要调用一个以表类型为参数的函数。在打电话之前我需要加满油,这就是我的问题所在

这些类型的定义如下:

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 TABLE(v_temp_table) (field1, field2, field3)
    VALUES (f1, f2, f3)
    FROM table1;
我不确定正确的语法应该是什么,没有将
v_temp_表
识别为表。

试试看

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