ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:忽略 SQL 语句

Posted

技术标签:

【中文标题】ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:忽略 SQL 语句【英文标题】:ORA-06550: line 12, column 9: PL/SQL: ORA-00936: missing expression ORA-06550: line 9, column 5: PL/SQL: SQL Statement ignored 【发布时间】:2017-12-03 15:09:57 【问题描述】:

我正在尝试插入 SELECT 语句返回的距离值,但是,我收到以下错误 -

DECLARE
    l_lat VARCHAR2(100);
    l_lng VARCHAR2(100);
    l_postcode VARCHAR2(8) := :P2_POSTCODE;

BEGIN
    brian.GEOCODE_GM_XML (l_postcode, l_lat, l_lng);

    INSERT INTO RESTAURANTS_IMAGES_VIEW (DISTANCE)
    VALUES 
    (
        SELECT SDO_GEOM.SDO_DISTANCE
        (a.location,
        SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(l_lat, l_lng, null), null, null), 0.005) distance
        FROM RESTAURANTS_IMAGES_VIEW a
    );
END;

我在这里犯了什么错误吗?

【问题讨论】:

【参考方案1】:

如果 SDO_GEOM.SDO_DISTANCE 是一个过程,并且在括号内要根据查询给出具体参数,请将 SELECT 放在 a.location 前面。 而且,你想做的是这样的:

插入restaurants_images_view(距离) 选择... 来自..

插入后不必使用值。

【讨论】:

以上是关于ORA-06550:第 12 行,第 9 列:PL/SQL:ORA-00936:缺少表达式 ORA-06550:第 9 行,第 5 列:PL/SQL:忽略 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

ORA-06550:第 1 行,第 7 列:PLS-00201:必须声明标识符“PAYMENT_UPDATE” ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略

ORA-06550: 错误的参数数量或类型

ORA-06550 第 10 行,第 41 列:PLS-00103:在预期以下情况之一时遇到符号“,”:

表或视图不存在

必须声明组件错误 (ORA-06550)

游标问题和语法 PLSQL