【求助】关于type table 批量插入object table
create table table1(
C1 varchar2(100),
C2 varchar2(100)
);
INSERT INTO table1 VALUES('111','AAA');
INSERT INTO table1 VALUES('222','BBB');
INSERT INTO table1 VALUES('333','CCC');
INSERT INTO table1 VALUES('444','DDD');
INSERT INTO table1 VALUES('555','EEE');
COMMIT;
--定义type类型如下
CREATE OR REPLACE type t_obj is object(
C1 varchar2(100),
C2 varchar2(100)
);
CREATE OR REPLACE type t_tab is table of t_obj;
--创建FUNCTION
CREATE OR REPLACE FUNCTION test1(
I_CUR IN SYS_REFCURSOR)RETURN t_tab
AS
v_obj_tab t_tab := t_tab();
TYPE t_type_tab IS TABLE OF table1%ROWTYPE;
v_type_tab t_type_tab;
BEGIN
LOOP
FETCH I_CUR BULK COLLECT INTO v_type_tab;
EXIT WHEN I_CUR%NOTFOUND;
END LOOP;
/*这种写法是错误的
求助:
有什么办法可以批量将v_type_tab的数据插入到v_obj_tab
SELECT t_obj(t.C1,t.C2)
BULK COLLECT INTO v_obj_tab
FROM TABLE(v_type_tab) t;*/
RETURN v_obj_tab;
END;
--测试
SELECT * FROM TABLE(test1(cursor(select * from table1)));
相关推荐
SQLServer 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。
mysql大批量数据插入
需求:需要频繁的插入数据到MySQL数据库中,设计目标要求能支持平均每秒插入1000条数据以上 方法:mysql批量数据插入方法及性能参考
Oracle批量插入数据的三种方式【推荐】
第一种: begin insert into tableName(column1, column2, column3...) values(value1,value2,value3...); insert into tableName(column1, column2, column3...) values(value1,value2,value3...); insert into tableName(column1, column2, column3...) values(value1,value2,value3...); ... end; 第二种: insert int
mybatis插入与批量插入返回ID的原理详解
主要给大家介绍了关于mybatis插入与批量插入返回ID的原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Mysql使用insert插入多条记录 批量新增数据
如果要向table1中插入5条记录,下面写法是错误的: INSERT INTO table1 (id,name) VALUES(1,小明,2,小强,3,小杜,4,小李,5,小白); MySQL将会抛出下面的错误 ERROR 1136: Column count doesn't match value count at row 1 而正确的写法应该是这样: INSERT INTO t able1(i,name) VALUES(1,'小明'),(2,'小强'),(3,'小杜'),(4,'小李'),(5,'小白'); 当然,这种写法也可以省略列名,这样每一对括号里的值的数目必须一致,而且这个数


