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: 8 años, 7 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.                 (SELECT DISTINCT PO_ELEC_ZONE.NAME SED,
  5. PO_FACILITY_TYPE.ID,
  6.  PO_FACILITY_TYPE.NAME,
  7. PO_ELEC_ZONE.TYPE,
  8.  PO_INT_ELEC_BREAK.ID BREAKID
  9. FROM POWERON.[email protected]_po  PO_ELEC_ADJACENCY,
  10. POWERON.[email protected]_po PO_ELEC_EXTENT_TO_SECTION,
  11. POWERON.[email protected]_po PO_ELEC_ZONE,
  12. POWERON.[email protected]_po PO_FACILITY_TYPE,
  13. POWERON.[email protected]_po PO_INT_ELEC_BREAK,
  14. POWERON.[email protected]_po PO_INT_ELEC_EXTENT,
  15.  POWERON.[email protected]_po PO_INT_ELEC_JUNCTION,
  16.                                  POWERON.[email protected]_po PO_INT_ELEC_SPAN,
  17.                                  (SELECT PO_ELEC_ZONE.NAME AS SED,
  18.                                          PO_FACILITY_TYPE.ID,
  19.                                          PO_FACILITY_TYPE.NAME,
  20.                                          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
  21.                                       FROM  POWERON.[email protected]_po PO_ELEC_ADJACENCY,
  22.                                             POWERON.[email protected]_po PO_ELEC_EXTENT_TO_SECTION,
  23.                                             POWERON.[email protected]_po PO_ELEC_ZONE,
  24.                                             POWERON.[email protected]_po PO_FACILITY_TYPE,
  25.                                             POWERON.[email protected]_po PO_INT_ELEC_BREAK,
  26.                                             POWERON.[email protected]_po PO_INT_ELEC_EXTENT,
  27.                                             POWERON.[email protected]_po PO_INT_ELEC_JUNCTION,
  28.                                             POWERON.[email protected]_po PO_INT_ELEC_SPAN
  29.                                            WHERE PO_ELEC_ADJACENCY.NETWORK_SECTION_ID = PO_ELEC_EXTENT_TO_SECTION.NETWORK_SECTION_ID
  30.                                                  AND PO_ELEC_EXTENT_TO_SECTION.EXTENT_ID = PO_INT_ELEC_EXTENT.ID
  31.                                                  AND PO_INT_ELEC_EXTENT.ID = PO_INT_ELEC_SPAN.EXTENT_ID
  32.                                                  AND PO_INT_ELEC_SPAN.ID = PO_ELEC_ZONE.NORMAL_SPAN_ID
  33.                                                  AND PO_INT_ELEC_JUNCTION.ID = PO_ELEC_ADJACENCY.JUNCTION_ID
  34.                                                  AND PO_INT_ELEC_JUNCTION.BREAK_ID = PO_INT_ELEC_BREAK.ID
  35.                                                  AND PO_FACILITY_TYPE.ID = PO_INT_ELEC_BREAK.FACILITY_TYPE_ID
  36.                                                  AND ((PO_INT_ELEC_BREAK.FACILITY_TYPE_ID = 25 )
  37.                                                  AND (PO_ELEC_ZONE.TYPE='bt'))
  38.                                                 -- AND PO_ELEC_ZONE.NAME = '31454' -- Ingreso de SED a buscar sus Nis
  39.                                                ORDER BY PO_ELEC_ZONE.NAME) ZONA
  40.                 WHERE PO_ELEC_ADJACENCY.NETWORK_SECTION_ID = PO_ELEC_EXTENT_TO_SECTION.NETWORK_SECTION_ID
  41.                                AND PO_ELEC_EXTENT_TO_SECTION.EXTENT_ID = PO_INT_ELEC_EXTENT.ID
  42.                                AND PO_INT_ELEC_EXTENT.ID = PO_INT_ELEC_SPAN.EXTENT_ID
  43.                                AND PO_INT_ELEC_SPAN.ID = PO_ELEC_ZONE.NORMAL_SPAN_ID
  44.                                AND PO_INT_ELEC_JUNCTION.ID = PO_ELEC_ADJACENCY.JUNCTION_ID
  45.                                AND PO_INT_ELEC_JUNCTION.BREAK_ID = PO_INT_ELEC_BREAK.ID
  46.                                AND PO_FACILITY_TYPE.ID = PO_INT_ELEC_BREAK.FACILITY_TYPE_ID
  47.                                AND ((PO_INT_ELEC_BREAK.FACILITY_TYPE_ID = 24 )
  48.                                AND (PO_ELEC_ZONE.TYPE='bt'))
  49.                                AND PO_ELEC_ZONE.NAME = ZONA.CODIGO
  50.                             ORDER BY PO_ELEC_ZONE.NAME) BRID
  51. WHERE D.service_break_id = BRID.BREAKID
  52.                 AND D.demand_section_id = CC.demand_section_id
  53.                 AND C.ID = CC.CUSTOMER_ID
  54.  
  55. /
[/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: 12 años, 7 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: 16 años, 11 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: 8 años, 7 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 07:26.