Sql 在没有光标的select查询中使用批量收集结果
我是PL/SQL新手,我想知道是否可以使用这样的批量收集结果:Sql 在没有光标的select查询中使用批量收集结果,sql,oracle,plsql,bulk-collect,Sql,Oracle,Plsql,Bulk Collect,我是PL/SQL新手,我想知道是否可以使用这样的批量收集结果: Declare type result_bulk_type is Table of table1.ID%type; result_bulk result_bulk_type; BEGIN SELECT id BULK COLLECT INTO result_bulk FROM table1; UPDATE table2 SET status=1 WHERE id IN result_bulk; END; 我在编译时出错: PL/S
Declare
type result_bulk_type is Table of table1.ID%type;
result_bulk result_bulk_type;
BEGIN
SELECT id BULK COLLECT INTO result_bulk FROM table1;
UPDATE table2 SET status=1 WHERE id IN result_bulk;
END;
我在编译时出错:
PL/SQL:SQL语句被忽略
PL/SQL:ORA-00932:不一致的数据类型:预期数量已获得系统PLSQL\U 22223\U 1
谢谢你的帮助 不,不能这样做。改用FORALL语句。
请阅读以下内容:
例如:
Declare
type result_bulk_type is Table of table1.ID%type;
result_bulk result_bulk_type;
BEGIN
SELECT id BULK COLLECT INTO result_bulk FROM table1;
FORALL i IN INDICES OF result_bulk
UPDATE table2 SET status=1 WHERE id = result_bulk( i );
END;
/
演示:不,不能这样做。改用FORALL语句。
请阅读以下内容:
例如:
Declare
type result_bulk_type is Table of table1.ID%type;
result_bulk result_bulk_type;
BEGIN
SELECT id BULK COLLECT INTO result_bulk FROM table1;
FORALL i IN INDICES OF result_bulk
UPDATE table2 SET status=1 WHERE id = result_bulk( i );
END;
/
演示:不,不能这样做。改用FORALL语句。
请阅读以下内容:
例如:
Declare
type result_bulk_type is Table of table1.ID%type;
result_bulk result_bulk_type;
BEGIN
SELECT id BULK COLLECT INTO result_bulk FROM table1;
FORALL i IN INDICES OF result_bulk
UPDATE table2 SET status=1 WHERE id = result_bulk( i );
END;
/
演示:不,不能这样做。改用FORALL语句。
请阅读以下内容:
例如:
Declare
type result_bulk_type is Table of table1.ID%type;
result_bulk result_bulk_type;
BEGIN
SELECT id BULK COLLECT INTO result_bulk FROM table1;
FORALL i IN INDICES OF result_bulk
UPDATE table2 SET status=1 WHERE id = result_bulk( i );
END;
/
演示:使用“结果批量的WHERE id成员”使用“结果批量的WHERE id成员”使用“结果批量的WHERE id成员”使用“结果批量的WHERE id成员”好的,谢谢!但是,还有别的办法吗?(不使用批量收集和FORALL)将结果存储在数组中?好的,谢谢!但是,还有别的办法吗?(不使用批量收集和FORALL)将结果存储在数组中?好的,谢谢!但是,还有别的办法吗?(不使用批量收集和FORALL)将结果存储在数组中?好的,谢谢!但是,还有别的办法吗?(不使用大容量收集和FORALL)将结果存储在数组中?好的,我会这样尝试,因为实际上我有6个更新要做,使用FORALL方法我必须创建7个FORALL调用,这似乎是耗时的,我会这样尝试,因为实际上我有6个更新要做,使用FORALL方法我必须创建7个FORALL调用,这似乎是耗时的,我会这样尝试,因为实际上我有6个更新要做,使用FORALL方法我必须创建7个FORALL调用,这似乎是耗时的,我会这样尝试,因为实际上我有6个更新要做,使用FORALL方法,我必须创建7个FORALL调用,这似乎很耗时