【发布时间】:2020-06-25 05:29:06
【问题描述】:
现在我在 APEX 中几乎完成了我的 PL/SQL 代码。从昨天开始我就一直犯错误。
While X < l_date_diff+1 Loop
l_date_string := l_date_string ||''','''||to_char(TO_DATE(:P2066_DATE_FROM, 'dd.mm.yyyy')+X,'dd.mm.yyyy') ;
X := X + 1;
End Loop;
l_date_string := substr(l_date_string,3)|| chr(39);
l_script := 'Select * from
(Select
pkey,
to_char(createdformat,''dd.mm.yyyy'') business_date,
regexp_substr(statistics, ''business_\w*'') business_statistics
from
gss.business_data
where
statistics like ''%business_%''
and createdformat between :P2066_DATE_FROM and :P2066_DATE_UNTIL
) ';
l_script_pivot := l_script || ' pivot(
count(pkey)
for business_date
in ('||l_date_string||')
)';
我逐步构建代码,因此我可以准确定义错误发生的位置。
当返回“Return”时,我现在得到错误:ORA-20999: Parsing returned query results in "ORA-20999: SQL query could not be parsed.
ORA-06550:第 18 行,第 6 列:ORA-01756:字符串中缺少引号
”。如果我只返回第一部分而不是 l_script_pivot,即 l_script 并查看 l_script_pivot 的值,代码看起来是正确的。我什至可以在 SQL 中输入它并得到结果。我在复合字符串 l_script_pivot 中缺少一个撇号
【问题讨论】:
-
这只是一段代码。定义报表查询是 sql 函数的一部分吗?
-
什么时候出现错误?在页面构建器中或运行页面时?
-
我发现了错误。现在我已经正确地放置了引号,这样构建器中就不会再出现错误了。 While X
-
q-notation 可以成为你的朋友livesql.oracle.com/apex/livesql/file/…
标签: oracle-apex