首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误:"ORA-20999:未能解析SQL查询!<p>ORA-06550:第3行,列25: ORA-00936:缺失表达式

获取错误:"ORA-20999:未能解析SQL查询!<p>ORA-06550:第3行,列25: ORA-00936:缺失表达式
EN

Stack Overflow用户
提问于 2020-04-03 21:41:10
回答 2查看 7K关注 0票数 1

我正在使用Oracle Apex,并基于从plsql主体返回sql创建报告。

我的声明是这样的:

代码语言:javascript
运行
复制
DECLARE
    l_query varchar2(1000); 
BEGIN
   l_query := 'SELECT ' || :P10_MYVAR || ' from dual ';
   return l_query;
END;

我收到以下错误消息:

代码语言:javascript
运行
复制
ORA-20999: Parsing returned query results in "ORA-20999: Failed to parse SQL query! <p>ORA-06550: line 3, column 25: ORA-00936: missing expression</p>".

如果我尝试不使用任何绑定变量,它会编译得很好:

代码语言:javascript
运行
复制
DECLARE
        l_query varchar2(1000); 
    BEGIN
       l_query := 'SELECT sysdate from dual ';
       return l_query;
    END;

我不明白为什么会发生这种错误。如果我直接在数据库中运行命令:

代码语言:javascript
运行
复制
SELECT :P10_MYVAR from dual

这个没问题。我为什么要犯这个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-03 21:54:54

想必你的意思是:

代码语言:javascript
运行
复制
DECLARE
    l_query varchar2(1000); 
BEGIN
   l_query := 'SELECT :P10_MYVAR from dual';
   return l_query;
END;

也就是说:您希望在查询中使用参数名,而不是将其与字符串连接。

票数 5
EN

Stack Overflow用户

发布于 2020-10-04 13:48:27

在使用Apex表达式时遇到相同的错误,下面的查询为我工作

代码语言:javascript
运行
复制
 declare
v_sql varchar2(4000);
begin

  if :P8_TYPE = 'C' then
    return q'~
    select ROWID,
           ID,
           C1,
           TXDATE,
           TRANSACTIONTYPE, 
           DEBIT,
           CREDIT,
           BALANCE 
      from TRANSMASTER
      where 
      TXDATE BETWEEN TO_DATE (:P8_FROMDT, 'mm/dd/yyyy') AND TO_DATE (:P8_TODT, 'mm/dd/yyyy') AND CREDIT > 0; 
    ~';
  else
    return q'~
    select ROWID,
           ID,
           C1,
           TXDATE,
           TRANSACTIONTYPE, 
           DEBIT,
           CREDIT,
           BALANCE 
      from TRANSMASTER
      where 
      TXDATE BETWEEN TO_DATE (:P8_FROMDT, 'mm/dd/yyyy') AND TO_DATE (:P8_TODT, 'mm/dd/yyyy')  AND DEBIT > 0; 
    ~';
  end if;
   
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61020836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档