【问题标题】:ORA-01756: quote missing from string </p> - APEX, Oracle, PL/SQLORA-01756: 字符串中缺少引号 </p> - APEX、Oracle、PL/SQL
【发布时间】: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


【解决方案1】:
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_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) 
                )';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-12
    • 2021-10-17
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    相关资源
    最近更新 更多