【发布时间】:2015-05-07 05:17:53
【问题描述】:
我有几个作为大型数据库脚本的一部分运行的 sql。经常有一些条件在几个 sql 上重复。例如
update phone_numbers set num = 'abc' where id not in (1,2,4,5,6,8);
update fax_numbers set num = 'abc' where id not in (1,2,4,5,6,8);
update email_add set val = 'abc' where id not in (1,2,4,5,6,8);
我的问题是我不断重复 not in 子句中的值。
如何将这些数字移动到变量中,然后应用于每个 sql。类似的东西
my_var = (1,2,4,5,6,8);
update phone_numbers set num = 'abc' where id not in @my_var;
update fax_numbers set num = 'abc' where id not in @my_var;
update email_add set val = 'abc' where id not in @my_var;
如果这有帮助,SQL 正在 Oracle 上运行?我以前用一个参数做过这个,但没有用一个数组。
我看过这个Oracle PL/SQL - How to create a simple array variable?,但这不适用于in
我已经搜索了几个地方,但似乎没有什么是我想要的
谢谢
【问题讨论】:
-
您从哪里运行代码 - 只是一个客户端,如 SQL Developer 或 SQL*Plus?如果是,是哪个客户?
-
您好,感谢您的回复。是通过 SQL plus 或 SQL 开发人员。谢谢