我有类似的类型
CREATE OR REPLACE TYPE MY_TYPE AS OBJECT
(
id NUMBER(10, 0),
name VARCHAR2(4),
lastName VARCHAR2(13),
address VARCHAR2(30),
previousAddress VARCHAR2(80)
);
以及这些表格
CREATE OR REPLACE TYPE MY_TYPE_ROWS AS TABLE OF MY_TYPE
我想要做的是插入从“MY_TYPE_ROWS”表中的游标返回的一些行 . (我想在pl / sql程序中这样做)
我要插入“MY_TYPE_ROWS”的数据位于游标中,如:
cursor dataCursor IS
select
id,name, lastName,address,previousAddress
from table1;
(光标返回超过1行)
我尝试过类似的东西:
my_table_rows MY_TYPE_ROWS := MY_TYPE_ROWS ();
OPEN dataCursor ;
FETCH dataCursor
INTO my_table_rows;
CLOSE dataCursor ;
但我得到一个异常“错误:PLS-00386:在FETCH游标和INTO变量之间的'my_table_rows'中找到类型不匹配”
谢谢
1 回答
你不能那样做吗?
你的方法的问题是你试图通过单个
into
选择一行,甚至不包含任何对象 .根据定义,它应该是
an array of objects
. 所以bulk collect
实现了数组提取,my_type(id,name,lastname,address,previousaddress)
实现了创建数组的对象 .