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

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

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

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;

我这里有什么错误吗?

如果SDO_GEOM.SDO_DISTANCE是程序,括号内要根据查询给出具体参数,请在a.location前加上SELECT。 而且,你想做的是:

插入 restaurants_images_view(距离) select... 来自..

插入后不必使用值。