脚本中的Oracle两个查询?可能吗?
例如,我想在oracle上运行它,这可能吗脚本中的Oracle两个查询?可能吗?,oracle,Oracle,例如,我想在oracle上运行它,这可能吗 ACCEPT num PROMPT 'enter num: ' SELECT a.tbl1 FROM tbl1 a, tbl2 b WHERE a.id = b.id AND a.num = '&num'; 如果有结果,则继续第二次查询 DELETE FROM tbl1 WHERE num = '&num'; 是否可以在脚本中运行2查询?对不起,我是甲骨文的新手 要在SQLPLUS中实现这一点,可以很容易地将SQL压缩为单个DELE
ACCEPT num PROMPT 'enter num: ' SELECT a.tbl1 FROM tbl1 a, tbl2 b WHERE a.id
= b.id AND a.num = '&num';
如果有结果,则继续第二次查询
DELETE FROM tbl1 WHERE num = '&num';
是否可以在脚本中运行2查询?对不起,我是甲骨文的新手
要在SQLPLUS中实现这一点,可以很容易地将SQL压缩为单个DELETE语句。这是因为当没有找到任何要删除的行时,DELETE语句不会抛出异常 鉴于此测试数据:
SQL> select * from tbl1
2 /
ID NUM
---------- ----------
10 999
20 999
10 888
SQL> select * from tbl2
2 /
ID
----------
10
SQL>
我们将相同的值传递两次;第一次删除记录时,下一次什么也不发生,只是优雅地
SQL> DELETE FROM tbl1 a
2 WHERE a.num = '&num'
3 and exists (select b.id
4 from tbl2 b
5 WHERE a.id = b.id )
6 /
Enter value for num: 999
old 2: WHERE a.num = '&num'
new 2: WHERE a.num = '999'
1 row deleted.
SQL> /
Enter value for num: 999
old 2: WHERE a.num = '&num'
new 2: WHERE a.num = '999'
0 rows deleted.
SQL>
当然,您可能在这里提出了一个简化的案例,而您的实际需求则更加复杂。如果是这样,请编辑您的问题以反映更现实的情况。是的,这是可能的,但您尚未提供有关如何实现此功能的任何信息-sql*plus?还有什么吗?是的,sqlplus,很抱歉之前没有提到