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