Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2013, 08:09
carrillo1802_
 
Fecha de Ingreso: noviembre-2011
Ubicación: lima
Mensajes: 19
Antigüedad: 13 años
Puntos: 0
Obtener todos los campos de una tabla en una variable de tipo cadena en oracle pl/sql

Código SQL:
Ver original
  1. DECLARE @pCAMPOCOMP1 VARCHAR(MAX)
  2. SELECT @pCAMPOCOMP1=
  3. COALESCE(@pCAMPOCOMP1,'')+CONVERT(VARCHAR,ORDINAL_ POSITION)+'.'+COLUMN_NAME+' '+DATA_TYPE+
  4. CASE
  5. WHEN CHARACTER_MAXIMUM_LENGTH IS NULL THEN ''
  6. ELSE
  7. CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)
  8. END
  9. FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ACTIVIDADES'
  10. PRINT @pCAMPOCOMP1
  11.  
  12. SELECT *FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='ACTIVIDADES'

*-del cual obtengo una cadena

1.ACTIVIDAD char32.DEPENDENCIA char33.TIPOACT smallint4.DESCRIPCION varchar1005.PLANILLA


*-Bueno viendo o analizando el codigo anterior me puse a escribir el siguiente codigo en OREACLE PL/SQL

Código SQL:
Ver original
  1. SELECT COALESCE(vpCAMPOCOMP1,'')+TO_CHAR(COLUMN_ID)||'.'| |COLUMN_NAME||' '||DATA_TYPE||
  2. CASE WHEN CHAR_COL_DECL_LENGTH IS NULL THEN
  3. ' '
  4. ELSE
  5. TO_CHAR(CHAR_COL_DECL_LENGTH)
  6. END CASE
  7. INTO vpCAMPOCOMP1
  8. FROM USER_TAB_COLUMNS WHERE TABLE_NAME='HISTORIAL_MODELO';

*- lo guardo la variable Valor pero tengo un error que me trae mas de un registro.

*.- YA QUE ME ARROJABA ESTE ERROR SE ME OCURRIO REALIZAR UN CURSOR PERO EL PROBLEMA ES QUE RECIEN LO CREO LA TABLA CUANDO EJECUTO EL PROCEDIMIENTO Y CUANDO TERMINA LO ELIMINO ES POR ESO Q NO SE KMO HACERLO O ES POSIBLE CREAR UN CURSOR DENTRO DEL PROCEDIMIENTO...

GRACIAS POR SUS RESPUESTAS

Última edición por gnzsoloyo; 24/12/2013 a las 09:09 Razón: Falta etiquetado de Highlight "SQL".