Ver Mensaje Individual
  #1  
Antiguo 08-01-2015
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
oracle bloques anonimos que devuelvan registros

Buenos días,
tengo un problemilla que seguro que alguno me puede echar una mano.

Situación:
Exploto dos sistemas:
- SQLServer
- Oracle

Utilizo ADO, concretamente ADOQuery en los dos casos.

Con SQLServer ( concretamente su PL/SQL) me permite utilizar en las querys variables, cursores, ... Por lo tanto en la misma query declaro una tabla temporal, variables, cursores, hago lo que necesito, lo cargo en la tabla temporal y devuelvo una select de la tabla declarada. Perfecto.

Con Oracle, sólo puedo hacer querys simples. No puedo utilizar variables, ni nada de nada, sólo lo que es una select más o menos compleja.

He visto que con oracle se pueden ejecutar bloques anónimos. Se escriben , se ponen en una ADOQuery y se ejecutan. Pero yo lo que necesito es que el resultado sea un conjunto de registros, es decir, como una query.

No puedo tocar la bbdd, por eso tengo que ejecutar fuera de ella todo lo que necesito.

Alguien ha tenido el mismo problema ? En caso afirmativo, cómo lo ha resuelto?

Os aviso que sólo quiero programar bloques de PL/SQL, no puedo meter lógica en delphi.

Gracias y un saludo.

PD: Os explico un pequeño ejemplo de lo que necesito:
Con una select recupero uno cientos de registros. Por cada registro necesito calucular un dato en base a datos de otra tabla. Monto todo en una tabla temporal, y hago una select de la misma que obtiene los resultados que necesito. Este resultado se visualiza en un clientdataset, que presnto en pantalla, imprimo, vuelco a excel, ....
Todo son lecturas, no hago ninguna actualización de datos.
No puedo utilizar ninguna herramienta diferente, y utilizo ADO porque me permite conectarme via odbc a multiples orígenes de datos.
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita