0
我正在解析Oracle中的JSON CLOB。我试图检索和解析单个JSON元素。Oracle 12c不能识别JSON类型
主要问题我孤立的是,编译器无法识别这里的JSON类型。但是,我可以在po_document字段中插入和访问单个JSON元素(声明为CLOB)。这是我试图访问
'{"PONumber" : 1600,
"Reference" : "ABULL-20140421",
"Requestor" : "Alexis Bull",
"User" : "ABULL",
"CostCenter" : "A50",
"ShippingInstructions" : "no such",
"Special Instructions" : null,
"AllowPartialShipment" : true,
"LineItems" : "no line"}'
我只是把一个标准的PL/SQL块解析JSON对象的JSON:
DECLARE
vCONTENT CLOB;
v_parent_json json;
v_json_message_list json_list;
v_json_message_list_value json_value;
v_parent_json_value json_value;
BEGIN
SELECT po_document INTO vCONTENT FROM j_purchaseorder;
v_parent_json := json(vCONTENT);
v_parent_json := json(v_parent_json.get(1));
v_json_message_list := json_list(v_parent_json.get('LineItems'));
DBMS_OUTPUT.PUT_LINE(v_json_message_list.count);
for message_loop_counter in 1 ..v_json_message_list.count loop
v_parent_json_value := json(v_json_message_list.get(message_loop_counter)).get(1);
DBMS_OUTPUT.PUT_LINE(v_parent_json_value.mapname);
END LOOP;
END;
编译器日志生成错误消息:错误(3, 8):PLS-00201:标识符 'JSON' 必须声明
从v $版本输出: Oracle数据库12c的企业版发行12.1.0.2.0 - 64位生产 PL/SQL发布12.1.0.2.0 - 生产
你从哪儿得到这种语法?据我从文档中看到的JSON值是一个字符串,所以v_parent_json应该是一个varchar2或一个CLOB。或者你是否定义了一个具有该名称的对象类型? –
或者你正在使用(或尝试使用)[PL/JSON](https://github.com/pljson/pljson/)? –
是的,我正在尝试使用PLJSON – Abhi