Ver Mensaje Individual
  #2  
Antiguo 14-12-2021
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 933
Reputación: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado jofemalo73: En primer lugar no soy experto en Oracle, pero a su comentario...

Cita:
No consigo encontrar la forma de encontrar un tipo que se trague la estructura
Creo que no lo encontrará.

En una primera revisión lo que se ocurre es que genere una consulta/vista/procesimiento almacenado, que le devuelva lo siguiente:
Código SQL [-]
SELECT 
  U.usuario             -- Identificador del usuario.
  U.usuario_desc           -- Nombre del usuario.

  A.servicio_id            -- Identificador del Servicio.
  A.servicio_desc          -- Descripción del Servicio.

  P.puesto_id              -- Identificador del Puesto.
  P.puesto_desc            -- Descripción del Puesto.

  C.criterio_id            -- Identificador del Criterio.
  C.criterio_desc          -- Descripción del Criterio.

  O.operacion_id           -- Identificador de la Operación.
  O.operacion_desc         -- Descripción de la Operación.
  O.valor                  -- Valor de la Operación (0:Sin permiso - 1:Con permiso).

FROM acceso.usuarios U
     inner join acceso.area               A on (A.Campo_Enlace=U.Campo_Enlace)
     inner join acceso.rh_puestos_trabajo P on (P.Campo_Enlace=A.Campo_Enlace)
     inner join acceso.via_criterio       C on (C.Campo_Enlace=P.Campo_Enlace)
     inner join acceso.via_operacion      O on (O.Campo_Enlace=C.Campo_Enlace)
where (U.Usuario= : pi_usuario)

Suponiendo que existe un componente TOraSQL
Código Delphi [-]
   OraQuery.SQL.Text:='Sentencia indicada mas arriba';
   OraQuery.ParamByName('pi_usuario').Value := 322;
   OraQuery.Open;

  while not OraQuery.Eof do
  begin
         ... 
         OraQuery.Next;
  end;
  OraQuery.Close;

Espero mi comentario le ayude, Saludos cordiales
Responder Con Cita