我正在尝试生成一些更复杂的东西。为了没有很多查询和维护点,想法是使用视图。
create or replace view vw_teste as
Select 1
from dual
where 1 = '#VARIABLE_FIX';
我想做的是
DECLARE
sQuery VARCHAR2(32767);
sView VARCHAR2(32767);
BEGIN
SELECT a.TEXT
into sView
FROM all_views a
where a.VIEW_NAME = 'VW_TESTE';
sQuery := REPLACE(sView, '''#VARIABLE_FIX''', :P1_ITEM);
return(sQuery);
END;
返回的错误:
“ORA-20999:解析返回的查询结果在”ORA-20999:解析SQL查询失败!
ORA-06550:第 12 行,第 23 列:ORA-00936:缺少表达式
"
我什至将变量 sQuery 的内容插入到一个临时表中,结果与视图的内容是正确的。
我使用参数化视图,但是当我直接在oracle apex中返回查询时,报表的性能要快得多。
如果通过 Squery: = 'Select 1 from dual where 1 =: P1_ITEM'
,则返回成功。关于如何绕过错误并使用此方法的任何想法?