我的PL / SQL函数插入表中:
procedure MY_PROC(n in number default null) is
begin
insert into MY_TABLE T
select ...
from ...;
end;
我的问题是:如果n
为空,则查询非常慢,我发现使用materialize
提示(是的,我知道它没有记录)解决了这个问题。但是如果n
不为空,那么快速的查询现在因为这个提示而变慢了!
那么只有在符合条件的情况下才有办法使用提示吗?我想要使用动态SQL(execute immediate
),但我想避免这种情况。
谢谢!
答案 0 :(得分:1)
你必须写两个插入语句,一个带有提示,一个带有提示,并用
分隔它们。if n is null then
... statement with hint
else
... statement without hint
end if;