Oracle11g 如何在oracle pl/sql 11g中声明数字数组
我有一组数字需要在两个查询中使用。这些是11g服务器的相同oracle SQL脚本的一部分: 更新表1设置一些_列=1,其中用户_id位于(1、2、3、4、5、6、7、8、9、10) 更新表2设置一些其他列=17,其中用户id位于(1、2、3、4、5、6、7、8、9、10) 如何将该数字列表分解成一个变量,并在两个update语句中使用它?您可以使用:Oracle11g 如何在oracle pl/sql 11g中声明数字数组,oracle11g,oracle-sqldeveloper,Oracle11g,Oracle Sqldeveloper,我有一组数字需要在两个查询中使用。这些是11g服务器的相同oracle SQL脚本的一部分: 更新表1设置一些_列=1,其中用户_id位于(1、2、3、4、5、6、7、8、9、10) 更新表2设置一些其他列=17,其中用户id位于(1、2、3、4、5、6、7、8、9、10) 如何将该数字列表分解成一个变量,并在两个update语句中使用它?您可以使用: 声明 类型t_num是数字表; num t_num; 开始 --从查询中填充集合 选择rownum 批量收集到num 通过低于10级的双连接;
声明
类型t_num是数字表;
num t_num;
开始
--从查询中填充集合
选择rownum
批量收集到num
通过低于10级的双连接;
--向集合添加一个值
扩展数;
num(num.last):=345;
--在UPDATE语句中使用(与在INSERT和DELETE中使用相同)
对于所有我在num.first..num.last
更新表1设置一些列=1,其中用户id=num(i);
结束;
declare
type t_num is table of number;
num t_num;
begin
-- fill collection from query
select rownum
bulk collect into num
from dual connect by level < 10;
-- add one value to collection
num.extend;
num(num.last) := 345;
-- using in an UPDATE statement (the same you can use in INSERT and DELETE)
forall i in num.first..num.last
update table1 set some_column = 1 where user_id = num(i);
end;