Oracle - Crear tabla con campos variables.

   
Vista:

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 10/12/2014 17:01:07
Hola a todos,

Necesito crear una tabla a partir de una consulta, donde los campos de la tabla sean por cada registro resultante de la consulta...


Select Dato1, dato2, dato3.... from tabla1..

create table tabla2
(
dato1 varchar2(1),
dato2 varchar2(1),
)

asi por cada registro del select


Se puede????
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Crear tabla con campos variables.

Publicado por Rafael (178 intervenciones) el 10/12/2014 17:20:12
Pues depende de la version de Oracle que uses ... si es superiror a la 11g R2 podrias usar PIVOT...

Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
create table xxx_new
as
Select * from table t                −> Origen de datos
Pivot                                −> Operador Pivot
( fn_agregada_1() Alias_1,
  Fn_agregada_2() Alias_2,> Funciones agrupadas a mostrar
  Fn_agregada_n () Alias_n
 
	For (campo_1 Alias_1 ,
	     Campo_2 Alias_2 ,,> Campos donde se genera el pivot
	     Campo_n Alias_n)
	     In(Lista de valores)> Filtros para generar las columnas
	)
)

Ya que con esta clausula puedes pasar de renglones a columnas, pero vaya es tan reducida la informacion que das que te tocara investigar un poco mas acerca del PIVOT.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 10/12/2014 17:30:56
GRACIASSS !!!!

Lo ultimo si uso una versión inferior de oracle, hay alguna función que sea como Pivot???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 10/12/2014 19:48:18
Buuu....

No me sirve porque desconozco los posibles datos (estos se ingresan por pantalla)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por luis (232 intervenciones) el 10/12/2014 20:13:03
Hola Fernanda, esto lo puedes hacer con sql dinamico, armar la sentencia "create table" con el resultado de la consulta, construyes la sentencia, con algo así:

DECLARE

CURSOR C_TABLITA IS
SELECT ....
... FROM ...
WHERE....;


V_SENTENCIA VARCHAR2(4000);
BEGIN
V_SENTENCIA:='CREATE TABLE PRUEBA (';

FOR X IN C_TABLITA LOOP
V_SENTENCIA:=V_SENTENCIA||X.CAMPO;
END LOOP;

--EXECUTE IMMEDIATE('CREATE TABLE GENERICO.GEN_CLIENTE_XX(CODIGO VARCHAR2(3), NOMBRE VARCHAR2(100)) ') ;
EXECUTE IMMEDIATE(V_SENTENCIA) ;

END;


Me comentas que tal te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 10/12/2014 22:45:48
Hola Luis,

Hice lo que colocaste...... Tengo un package y dentro el SP que crea la tabla con los datos

pero al ejecutar da el error

ORA-01031: privilegios insuficientes
ORA-06512: en "PACKAGE01", línea 198
ORA-06512: en línea 13


estuve averiguando y la solución dice que debo dar los permisos de forma directa, osea hacer un
grant create table to usuario.

el tema es que no sé donde debo hacerlo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por luis (232 intervenciones) el 10/12/2014 23:01:39
Si es tu BD hazlo conectada con el usuario system, si estas en tu trabajo coordina con el DBA y que le asigne privilegios al usuario que ejecutará la sentencia "create table.."

Me informas si todo salio bien.

Saludos


luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 10/12/2014 23:04:33
GRACIASS !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por luis (232 intervenciones) el 10/12/2014 23:39:32
Que tal Fernanda, funcionó?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear tabla con campos variables.

Publicado por Fernanda (37 intervenciones) el 11/12/2014 13:47:19
Hola Luis,

Recién hoy voy a hablar con mi jefe para solicitar que asignen los privilegios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar