gpt4 book ai didi

sql - 存储函数未在 "insert into"子查询中触发

转载 作者:行者123 更新时间:2023-12-04 18:16:39 24 4
gpt4 key购买 nike

我在 ORACLE 11g 上使用 SQL 插入 table1同时触发一个存储函数,该函数插入 table3 .存储函数没有触发,我怀疑这是因为 ORACLE 优化器意识到插入 table1 不需要存储函数所以它忽略了它们?
有没有办法请求oracle不优化查询或者有更好的解决方案。
示例代码:

INSERT INTO table1 (col1)
SELECT A.col1
FROM (SELECT col1, storedFunction(col2),storedFunction(col3),storedFunction(col4)
FROM table2) A

最佳答案

你可以让你的存储过程返回 NULL并使用以下内容:

INSERT INTO table1 (col1)
SELECT NVL( col1, storedProcedure(col2) )
FROM table2
NVL始终评估两个参数,即使第一个参数不为空。

我不确定我是否会对这个黑客感到满意......

关于sql - 存储函数未在 "insert into"子查询中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com