oracle apex 代码中缺少右括号

Posted

技术标签:

【中文标题】oracle apex 代码中缺少右括号【英文标题】:missing right parenthesis in oracle apex code 【发布时间】:2020-06-14 05:16:55 【问题描述】:

我在 oracle apex 交互式报告页面中运行此代码以显示学生图片,但它一直抛出此错误“ORA-06550:第 2 行,第 14 列:ORA-00907:缺少右括号”,但是我检查了没有缺少任何括号。

SELECT "ID", "NAME", decode(NVL(dbms_lob.getlength("PHOTO"),0),0,NULL,
      '<img 'src ="'|| apex_util.get_blob_file_src('P7_PHOTO',ID) ||'" width ="100"/>') from "#OWNER#."STUDENTS_INFO"

【问题讨论】:

有一个流浪的'(在img之前)。删除它。 感谢@stickybit,我刚刚删除了它现在显示此错误“ORA-06550:第 2 行,第 7 列:ORA-00936:缺少表达式”,代码看起来像这个 SELECT“ID”, "NAME", 解码(NVL(dbms_lob.getlength("PHOTO"),0),0,NULL, ') 图片来自 "#OWNER#."STUDENTS_INFO" 现在您在&lt;img 之前缺少一个',在#OWNER# 之后缺少一个"... 【参考方案1】:

你在 src 之前有一个错误的单引号

SELECT "ID"
    , "NAME"
    , decode(NVL(dbms_lob.getlength("PHOTO"),0),0,NULL,
       '<img src ="'|| apex_util.get_blob_file_src('P7_PHOTO',ID) ||'" width ="100"/>') 
FROM "#OWNER#"."STUDENTS_INFO"

并错过了“#OWNER#”的双引号

【讨论】:

顺便说一句,不需要包含“#OWNER#”。也不必将所有列名或表名用双引号括起来。仅当它们区分大小写或包含特殊字符时才需要这样做。 感谢@PatrickWolf 和 Scais Edge,在这里我在谷歌驱动器中上传了一些照片,现在没有显示图片,在 youtube 中,当他们运行这样的代码时它可以工作我不明白为什么它不是为我工作。 drive.google.com/drive/folders/…【参考方案2】:
SELECT  "ID",
        "NAME",
        DECODE(NVL(dbms_lob.getlength("PHOTO"),0),
        0,
        NULL,
        '<img src ="'|| apex_util.get_blob_file_src('P7_PHOTO',ID) ||'" width ="100"/>') PHOTO
FROM    "#OWNER#"."STUDENTS_INFO"

【讨论】:

感谢您的 cmets 和回答,当我在 oracle apex 5.0 的交互式报告页面中运行您的代码并将照片列更改为标准视图时,它没有显示图片,这里我上传了一些截图给你。非常感谢您的努力。 drive.google.com/drive/folders/…

以上是关于oracle apex 代码中缺少右括号的主要内容,如果未能解决你的问题,请参考以下文章

ORA-00907: ORACLE 10G 中缺少右括号

Oracle 9i:据说缺少右括号

Oracle Live SQL:ORA-00907:缺少右括号 -

ORACLE SQL 错误 - 缺少右括号 - 查询 [关闭]

Oracle SQL中的“缺少右括号”

获取“ORA-00907:缺少右括号”,找不到错误