Application Express를 사용하여 Oracle 12c에서 프로그래밍 방식으로 PL/SQL 트리거에서 JSON 배열의 길이를 찾으려고합니다. 이렇게하면 각 요소를 반복하고 다른 테이블에 데이터를 삽입 할 수 있습니다. 현재 JSON은 CLOB로 열에 저장되어 있으며 VarCHAR2로 변환 중입니다.PL/SQL 트리거에서 JSON 배열 길이 찾기
SQL 오류 메시지 : ORA-06502 : PL/SQL : 숫자 또는 값 오류
ORA-06512 : 코드 아래 :이 트리거를 실행할 때declare json CLOB; json_varchar VARCHAR2(32767); json_member WWV_FLOW_T_VARCHAR2; begin json := :new.ORDER_SKU; json_varchar := CAST(json AS VARCHAR2); apex_json.parse (json); json_member := APEX_JSON.get_members(p_path=>'order_sku'); FOR i IN 1..json_member.count LOOP ... END LOOP; end;
나는 다음과 같은 오류가 점점 오전에 "APEX_050100.WWV_FLOW_JSON", 라인 1,597
,
ORA-06512 "TriggerName"라인에서 9
ORA-04088 'TriggerName'
ORA-06512 트리거의 실행 중에 에러 : 라인에서 6`
JSON 배열의 길이를 찾기 위해 다른 방법을 사용해야한다고 생각하지만 문서 또는 스택 오버플로를 통해 찾을 수 없었습니다. 당신이 12C 버전이기 때문에 당신이 정말로 원하는 경우 json_table 살펴 보셔야로
{
"order_sku":[{"sku1":"details"},{"sku2":"details"}]
}
Thanks N Cheadle. 당신이 12c에있는 것 같습니다. 12cR1에서 가져온 json 지원을 살펴 보았는지 궁금하네요? 'json_table'과 같은 함수가 있습니다. https://docs.oracle.com/database/121/ADXDB/json.htm#ADXDB6246 – alexgibbs
JSON_Table은 주석을 작성해 주셔서 감사드립니다. –