oracle触发器和json_value

时间:2019-05-09 15:35:55

标签: sql json oracle triggers

嗨,我想通过触发器存储:new.payload中的一些值。

这适用于sql-developer,但不适用于触发器...

select json_value('{"timestamp":"2019-05-09T14:00:00Z","value":0,"unit":"W/m²"}', '$.unit') from dual;

'{“ timestamp”:“ 2019-05-09T14:00:00Z”,“ value”:0,“ unit”:“ W /m²”}'是我的:new.payload

我也尝试过

SELECT unit INTO v_unit
    FROM
        json_table(:new.payload, '$'
            columns (
                    timestamp VARCHAR2(80) path '$.timestamp',
                    value NUMBER path '$.value',
                    unit VARCHAR2(80) path '$.unit'
                    )
) jt;

我收到错误ORA-00904:“ DECL_OBJ#”; /

(错误:ORA-00604:递归错误SQL级别1 ORA-00904:“ DECL_OBJ#”:无效的ID)

1 个答案:

答案 0 :(得分:1)

这是一个疯狂的猜测,但请尝试以下操作:

1。打开SQL Developer,将PLScope标识符参数(工具>首选项>数据库> PL / SQL编译器> PLScope标识符)从全部设置为无。

  1. 关闭并打开SQL Developer