Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Ayuda con query (https://www.clubdelphi.com/foros/showthread.php?t=36659)

Ricardo Alfredo 19-10-2006 17:38:59

Ayuda con query
 
Hola amigos, les cuento estoy convirtiendo procedimientos
almacenados desde sybase a oracle (8) y tengo el siguiente problema
En sybase podia generar en un procedimiento una tabla temporal la
cual existia para ese usuario en el transcurso que estaba viva la
transaccion. Entonces a traves de un cursor y un poco de logica mas
llenaba la tabla temp y despues a traves de otro cursor al final del
procedimiento enviaba el result set.
Ya que en oracle no puedo hacer algo similar (o no encontrado la
forma) , lo que estoy tratando de hacer que en un solo select tener
lo que hacia antes en sybase, he aqui el problema
como puedo hacer un outjoin

Código SQL [-]
select contractual.codigo_trabajador, 
nombres_apellidos,               
contractual.codigo_empresa,email_oficina,contractual.codigo_cargo,con
tractual.codigo_unidad,contractual.codigo_negocio,               
codigo_convenio,codigo_sindicato,codigo_sucursal,lugar_pago,email_par
ticular,codigo_empresa,monto_capacitacion,              negocios.descripcion,unidad_administrativa.descripcion,
cargos_trabajador.descripcion,a.descripcion
     from contractual, 
maestro_personas,negocios,unidad_administrativa,cargos_trabajador, 
estructura_expandida a
        where                            
contractual.codigo_trabajador=maestro_personas.codigo_trabajador and
contractual.estado_contractual='activo'and  
contractual.codigo_negocio=negocios.codigo_negocio(+) and
contractual.codigo_unidad=unidad_administrativa.codigo_unidad(+) and
contractual.codigo_cargo=cargos_trabajador.codigo_cargo(+) and
contractual.codigo_convenio=a.codigo_estructura(+) and
a.tipo_estructura='convenios'
order by nombres_apellidos;

entonces no me deja hacer el outer con una constante, como puedo reemplazar esto, porque tengo como cinco tablas mas que tienen costantes y si las dejo asi no me trae todos los registros.

gracias


Ricardo Arancibia Ardiles
www.smartsoft.cl
Fono 6333907 - 6387418 - 092225878

Paoti 19-10-2006 19:02:37

prueba hacer esto tambien


where campo = 'valor'(+)


o

where campo = (Select 'valorconstante' from dual) (+)

o

where campo in (Select 'valorconstante' from dual) (+)

jachguate 19-10-2006 19:10:12

Hola.

En primer lugar, he encerrado tu sentencia en las etiquetas SQL. Podes editar tu mensaje para ver cómo se usan.

Luego, no me queda claro cual es el problema, ¿podes explicarlo nuevamente?

Hasta luego.

;)

avmm2004 22-10-2006 14:36:09

En oracle existen tablas temporales por lo menos desde la 8i. La sintaxis es :

Código SQL [-]
CREATE GLOBAL TEMPORARY TABLE my_temp_table (
  column1  NUMBER,
  column2  NUMBER
) ON COMMIT DELETE ROWS;

¿ Te vale para lo que buscabas. ?:confused:


La franja horaria es GMT +2. Ahora son las 07:40:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi