Para poder llevar a cabo esta tarea a continuación vamos a ver una sucesión de pasos que nos van a ayudar a solucionar nuestra necesidad.
Cabe aclarar que si la tabla tiene indices asociados primero habría que relevarlos dado que los vamos a perder con este procedimiento.
SQL> create table EJEMPLO (col1 number, col2 number, col3 number);
Table created.
SQL> desc EJEMPLO;
SQL> create table AUXILIAR as select col3, col2, col1 from EJEMPLO;
Table created.
SQL> drop table EJEMPLO;
Table dropped.
SQL> alter table AUXILIAR rename to EJEMPLO;
Table altered.
SQL> desc EJEMPLO;
Espero les haya servido.
Saludos!
Gondalf
SQL> create table EJEMPLO (col1 number, col2 number, col3 number);
Table created.
SQL> desc EJEMPLO;
Name Null? Type
---------- ------ ----------------
COL1 NUMBER
COL2 NUMBER
COL3 NUMBER
SQL> create table AUXILIAR as select col3, col2, col1 from EJEMPLO;
Table created.
SQL> drop table EJEMPLO;
Table dropped.
SQL> alter table AUXILIAR rename to EJEMPLO;
Table altered.
SQL> desc EJEMPLO;
Name Null? Type
---------- ------ ----------------
COL3 NUMBER
COL2 NUMBER
COL1 NUMBER
Espero les haya servido.
Saludos!
Gondalf
y cuando tienes datos?
ResponderEliminarNo entendí bien tu pregunta, a que te refiere con cuando obtengo los datos?
ResponderEliminarHola Gonzalo, un pequeño aporte para sumar en este lindo blog...
ResponderEliminar-El orden que mostrar en el 2º desc EJEMPLO no muestra el cambio, si no entendí mal debería ser col3,col2,col1.
-Pregunta: ¿En el caso de que la tabla original (EJEMPLO) tenga índices o constraints creo que siguiendo estos pasos se perderían, con lo cual estaría bueno aclarar que con anterioridad al paso drop table se releven dichos objetos así no se sufre ninguna pérdida.
Abrazo.
Gracias Facundo... es muy buena tu aclaración, efectivamente se perderían dichos índices, por lo que primero habría que relevarlos.
ResponderEliminarla pregunta seria si tengo en mi tabla q quiero reordenar las columnas mas de 1000 datos. muy aparte de el relevo de indices.. como seria la cuestion... supongo q seria el trasladar la data a la nueva tabla.. con un select insert into o me equivoco?'
ResponderEliminarlos SGDB no tienen alguna opción para hacerlo automático ?
ResponderEliminar