Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

SELECT en SP y creación de tabla

Estas en el tema de SELECT en SP y creación de tabla en el foro de Oracle en Foros del Web. Estimados, no muy asiduo en los foros, pero tengo un problema con la creación de un SP para oracle, el cual debe estar compuesto por ...
  #1 (permalink)  
Antiguo 08/07/2014, 08:51
Rev
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Pregunta SELECT en SP y creación de tabla

Estimados,
no muy asiduo en los foros, pero tengo un problema con la creación de un SP para oracle, el cual debe estar compuesto por un select que consulta a una infinidad de tablas para traer como resultado dos columnas, i problema es que no e podido crear el sp que de devuelva el select y me cree una tabla con los parámetros que trae al frente en este caso SED y NIS .
espero que me puedan ayudar.

Saludos

Código SQL:
Ver original
  1. CREATE TABLE temp_nis
  2. AS
  3. SELECT DISTINCT BRID.SED, C.ACCOUNT_NUMBER AS NIS
  4. FROM po_elec_demand@dbl_po D, po_customer_connection@dbl_po CC,PO_CUSTOMER@dbl_po C,
  5.                 (SELECT DISTINCT PO_ELEC_ZONE.NAME SED,
  6. PO_FACILITY_TYPE.ID,
  7.  PO_FACILITY_TYPE.NAME,
  8. PO_ELEC_ZONE.TYPE,
  9.  PO_INT_ELEC_BREAK.ID BREAKID
  10. FROM POWERON.PO_ELEC_ADJACENCY@dbl_po  PO_ELEC_ADJACENCY,
  11. POWERON.PO_ELEC_EXTENT_TO_SECTION@dbl_po PO_ELEC_EXTENT_TO_SECTION,
  12. POWERON.PO_ELEC_ZONE@dbl_po PO_ELEC_ZONE,
  13. POWERON.PO_FACILITY_TYPE@dbl_po PO_FACILITY_TYPE,
  14. POWERON.PO_INT_ELEC_BREAK@dbl_po PO_INT_ELEC_BREAK,
  15. POWERON.PO_INT_ELEC_EXTENT@dbl_po PO_INT_ELEC_EXTENT,
  16.  POWERON.PO_INT_ELEC_JUNCTION@dbl_po PO_INT_ELEC_JUNCTION,
  17.                                  POWERON.PO_INT_ELEC_SPAN@dbl_po PO_INT_ELEC_SPAN,
  18.                                  (SELECT PO_ELEC_ZONE.NAME AS SED,
  19.                                          PO_FACILITY_TYPE.ID,
  20.                                          PO_FACILITY_TYPE.NAME,
  21.                                          PO_ELEC_ZONE.TYPE,RTRIM(LTRIM(SUBSTR(PO_INT_ELEC_BREAK.DESCRIPTION,LENGTH(PO_INT_ELEC_BREAK.DESCRIPTION)-5,LENGTH(PO_INT_ELEC_BREAK.DESCRIPTION)))) CODIGO
  22.                                       FROM  POWERON.PO_ELEC_ADJACENCY@dbl_po PO_ELEC_ADJACENCY,
  23.                                             POWERON.PO_ELEC_EXTENT_TO_SECTION@dbl_po PO_ELEC_EXTENT_TO_SECTION,
  24.                                             POWERON.PO_ELEC_ZONE@dbl_po PO_ELEC_ZONE,
  25.                                             POWERON.PO_FACILITY_TYPE@dbl_po PO_FACILITY_TYPE,
  26.                                             POWERON.PO_INT_ELEC_BREAK@dbl_po PO_INT_ELEC_BREAK,
  27.                                             POWERON.PO_INT_ELEC_EXTENT@dbl_po PO_INT_ELEC_EXTENT,
  28.                                             POWERON.PO_INT_ELEC_JUNCTION@dbl_po PO_INT_ELEC_JUNCTION,
  29.                                             POWERON.PO_INT_ELEC_SPAN@dbl_po PO_INT_ELEC_SPAN
  30.                                            WHERE PO_ELEC_ADJACENCY.NETWORK_SECTION_ID = PO_ELEC_EXTENT_TO_SECTION.NETWORK_SECTION_ID
  31.                                                  AND PO_ELEC_EXTENT_TO_SECTION.EXTENT_ID = PO_INT_ELEC_EXTENT.ID
  32.                                                  AND PO_INT_ELEC_EXTENT.ID = PO_INT_ELEC_SPAN.EXTENT_ID
  33.                                                  AND PO_INT_ELEC_SPAN.ID = PO_ELEC_ZONE.NORMAL_SPAN_ID
  34.                                                  AND PO_INT_ELEC_JUNCTION.ID = PO_ELEC_ADJACENCY.JUNCTION_ID
  35.                                                  AND PO_INT_ELEC_JUNCTION.BREAK_ID = PO_INT_ELEC_BREAK.ID
  36.                                                  AND PO_FACILITY_TYPE.ID = PO_INT_ELEC_BREAK.FACILITY_TYPE_ID
  37.                                                  AND ((PO_INT_ELEC_BREAK.FACILITY_TYPE_ID = 25 )
  38.                                                  AND (PO_ELEC_ZONE.TYPE='bt'))
  39.                                                 -- AND PO_ELEC_ZONE.NAME = '31454' -- Ingreso de SED a buscar sus Nis
  40.                                                ORDER BY PO_ELEC_ZONE.NAME) ZONA
  41.                 WHERE PO_ELEC_ADJACENCY.NETWORK_SECTION_ID = PO_ELEC_EXTENT_TO_SECTION.NETWORK_SECTION_ID
  42.                                AND PO_ELEC_EXTENT_TO_SECTION.EXTENT_ID = PO_INT_ELEC_EXTENT.ID
  43.                                AND PO_INT_ELEC_EXTENT.ID = PO_INT_ELEC_SPAN.EXTENT_ID
  44.                                AND PO_INT_ELEC_SPAN.ID = PO_ELEC_ZONE.NORMAL_SPAN_ID
  45.                                AND PO_INT_ELEC_JUNCTION.ID = PO_ELEC_ADJACENCY.JUNCTION_ID
  46.                                AND PO_INT_ELEC_JUNCTION.BREAK_ID = PO_INT_ELEC_BREAK.ID
  47.                                AND PO_FACILITY_TYPE.ID = PO_INT_ELEC_BREAK.FACILITY_TYPE_ID
  48.                                AND ((PO_INT_ELEC_BREAK.FACILITY_TYPE_ID = 24 )
  49.                                AND (PO_ELEC_ZONE.TYPE='bt'))
  50.                                AND PO_ELEC_ZONE.NAME = ZONA.CODIGO
  51.                             ORDER BY PO_ELEC_ZONE.NAME) BRID
  52. WHERE D.service_break_id = BRID.BREAKID
  53.                 AND D.demand_section_id = CC.demand_section_id
  54.                 AND C.ID = CC.CUSTOMER_ID
  55.  
  56. /
[/QUOTE]
  #2 (permalink)  
Antiguo 09/07/2014, 07:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: SELECT en SP y creación de tabla

Revisa la clausula EXECUTE de Oracle y averigua sobre SQL dinamico.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 09/07/2014, 13:34
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: SELECT en SP y creación de tabla

se supone que hacer un procedimiento almacenado tiene el objetivo de generar alguna lógica mas allá de un SQL. Esto lo digo por que no veo un join hacia una variable paramétrica. Pero bueno. Si lo necesitas tal cual lo mas simple podría ser meter todo el SQL en un

Código HTML:
execute inmediate('SQL');
Un temporary table también puede ser una alternativa.

Saludos
__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 10/07/2014, 07:01
Rev
 
Fecha de Ingreso: enero-2013
Mensajes: 22
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: SELECT en SP y creación de tabla

gracias, de igual forma esta pensado en hacerlo solo con una tabla temporal sin un SP, pero es un requerimiento que piden sin logica.

Etiquetas: creación, select, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.