Saltar al contenido

Ejemplo de código de elementos ORDS json

Este equipo de trabajo ha estado mucho tiempo investigando la resolución a tu búsqueda, te dejamos la respuesta así que esperamos que sea de gran ayuda.

Ejemplo: análisis de ORDS de Oracle

CONN testuser1/testuser1@pdb1CREATEORREPLACEPROCEDURE create_departments (p_data  INBLOB)ASTYPE t_dept_tab ISTABLEOF dept%ROWTYPE;TYPE t_emp_tab  ISTABLEOF emp%ROWTYPE;

  l_dept_tab     t_dept_tab := t_dept_tab();
  l_emp_tab      t_emp_tab  := t_emp_tab();

  l_clob         CLOB;
  l_dest_offset  PLS_INTEGER :=1;
  l_src_offset   PLS_INTEGER :=1;
  l_lang_context PLS_INTEGER := DBMS_LOB.default_lang_ctx;
  l_warning      PLS_INTEGER;

  l_dept_count   PLS_INTEGER;
  l_emp_count    PLS_INTEGER;BEGIN-- Convert the BLOB to a CLOB.
  DBMS_LOB.createtemporary(
    lob_loc => l_clob,
    cache   =>FALSE,
    dur     => DBMS_LOB.call);

  DBMS_LOB.converttoclob(
   dest_lob      => l_clob,
   src_blob      => p_data,
   amount        => DBMS_LOB.lobmaxsize,
   dest_offset   => l_dest_offset,
   src_offset    => l_src_offset, 
   blob_csid     => DBMS_LOB.default_csid,
   lang_context  => l_lang_context,
   warning       => l_warning);
   
  APEX_JSON.parse(l_clob);-- Loop through all the departments.
  l_dept_count := APEX_JSON.get_count(p_path =>'departments');FOR i IN1.. l_dept_count LOOP
    l_dept_tab.extend;
    l_dept_tab(l_dept_tab.last).deptno := APEX_JSON.get_number(p_path =>'departments[%d].department.department_no', p0 => i);
    l_dept_tab(l_dept_tab.last).dname  := APEX_JSON.get_varchar2(p_path =>'departments[%d].department.department_name', p0 => i);
    l_emp_count   := APEX_JSON.get_count(p_path =>'departments[%d].department.employees', p0 => i);-- Loop through all the employees for the current department.FOR j IN1.. l_emp_count LOOP
      l_emp_tab.extend;
      l_emp_tab(l_emp_tab.last).deptno   := l_dept_tab(l_dept_tab.last).deptno;
      l_emp_tab(l_emp_tab.last).empno    := APEX_JSON.get_number(p_path =>'departments[%d].department.employees[%d].employee_number', p0 => i, p1 => j);
      l_emp_tab(l_emp_tab.last).ename    := APEX_JSON.get_varchar2(p_path =>'departments[%d].department.employees[%d].employee_name', p0 => i, p1 => j);
      l_emp_tab(l_emp_tab.last).sal      := APEX_JSON.get_number(p_path =>'departments[%d].department.employees[%d].salary', p0 => i, p1 => j);
      l_emp_tab(l_emp_tab.last).hiredate := SYSDATE;ENDLOOP;ENDLOOP;-- Populate the tables.
  FORALL i IN l_dept_tab.first.. l_dept_tab.lastINSERTINTO dept VALUES l_dept_tab(i);

  FORALL i IN l_emp_tab.first.. l_emp_tab.lastINSERTINTO emp VALUES l_emp_tab(i);COMMIT;

  DBMS_LOB.freetemporary(lob_loc => l_clob);
EXCEPTION
  WHEN OTHERS THEN
    HTP.print(SQLERRM);END;/

Reseñas y valoraciones del tutorial

Agradecemos que quieras añadir valor a nuestro contenido informacional aportando tu veteranía en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *