FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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 - |
#2
|
|||
|
|||
Hola,
Lo que te propongo y te puede servir es usar cursores para levantar los datos de la primer tabla y hacer el cálculo que necesitas. Luego recorres ese cursor y lo vas cargando en la tabla temporal. Con los datos en esa tabla haces el select que necesitas listo. En este momento no tengo a mano el enlace de Oracle donde explica como usar cursores, pero ingresa en su sitio y busca que hay mucha información ahí. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#3
|
||||
|
||||
Gracias por responder, elrayo76
mi pregunta es más concreta: COn una query ADO puedo hacer todo esto? es decir, crear la tabla temporal, definir el cursor, recorrerlo, hacer algún cálculo y mostrar los registros? Lo pregunto porque en SQLServer sí se puede. La dificultad no es programar el proceso, sino que funcione. Esto lo necesito así porque en la aplicación que tengo "mezclo" datos de varios sistemas. La conexióna los mismos la hago vía odbcs varios definidos en el equipo desde donde se lanzan los procesos. Espero haberme explicado bien, ya que el contexto es el que me condiciona. Gracias de nuevo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Registros en en bloques de 100 o mas... | Jose Roman | Conexión con bases de datos | 18 | 25-06-2010 17:42:13 |
Experiencias con Metodos Anónimos y Generics | gatosoft | Debates | 4 | 04-06-2010 17:33:08 |
Por favor, devuelvan la furgoneta | Ivanzinho | La Taberna | 4 | 03-10-2008 18:17:29 |
Listado de proxys anónimos!! | DarkByte | Varios | 2 | 22-03-2004 08:23:25 |
|