title: PL/SQL json_value function gives error for large JSON document
body: <p>A service is attempts to extract a roleid from a JSON object, but gives </p>
  
  <pre><code>Error report:
  ORA-01460: unimplemented or unreasonable conversion requested
  ORA-06512: at line 1801
  01460. 00000 -  "unimplemented or unreasonable conversion requested"
  *Cause:    
  *Action:
  </code></pre>
  
  <p>The code is </p>
  
  <pre><code>set serveroutput on
  declare
      input_data      VARCHAR2(32000);
      lv_role_id     VARCHAR2 (100);
  begin
      input_data := '';
      input_data:=input_data||'{';
      input_data:=input_data||'  "roleid": "2945",';
      input_data:=input_data||'  "featureid": "3",';
      input_data:=input_data||'  "category": [';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "31",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "32",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "33",';
      input_data:=input_data||'      "ischecked": true';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "34",';
      input_data:=input_data||'      "ischecked": true';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "35",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "36",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "37",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "38",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "39",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "40",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "41",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "43",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "42",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "44",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "45",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "46",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "47",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "48",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "49",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "50",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "51",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "52",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "53",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "54",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "55",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "56",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "57",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "58",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "59",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "60",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "81",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "314",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "276",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "86",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "72",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "271",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "78",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "383",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "206",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "210",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "384",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "122",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "352",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "307",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "291",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "125",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "236",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "82",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "247",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "234",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "232",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "112",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "66",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "107",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "71",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "73",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "246",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "192",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "273",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "80",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "106",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "195",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "144",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "262",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "118",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "109",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "160",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "272",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "238",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "156",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "178",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "339",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      input_data:=input_data||'    {';
      input_data:=input_data||'      "featureid": "3",';
      input_data:=input_data||'      "id": "277",';
      input_data:=input_data||'      "ischecked": false';
      input_data:=input_data||'    },';
      // input_data:=much more data
      input_data:=input_data||'  ]';
      input_data:=input_data||'}';
  
      SELECT JSON_VALUE (input_data, '$.roleid' returning number) INTO lv_role_id FROM DUAL;
  
  end;
  /
  
  </code></pre>
  
  <p>However, despite what others might think, the size of the document appears to have an effect.  If I run the following much smaller JSON parsing it parses the value. </p>
  
  <pre><code>set serveroutput on
  declare
      input_data      VARCHAR2(32000);
      lv_role_id     VARCHAR2 (100);
  begin
      input_data := '';
      input_data:=input_data||'{';
      input_data:=input_data||'  "roleid": "2945",';
      input_data:=input_data||'  "featureid": "3"';
      input_data:=input_data||'}';
  
      SELECT JSON_VALUE (input_data, '$.roleid' returning number) INTO lv_role_id FROM DUAL;
  
  end;
  /
  
  </code></pre>
  
  <p>I tried getting the actual JSON payload and running it through a lint validator and even the long one is compliant.  Inserting the JSON into CLOB in a table, then running SELECT JSON_VALUE on the column worked.  The AskTom guy says the problem is returning a large value, but I think it's having a problem taking a large value.  </p>