Oracle - Trim de todos los varchar en la BD

 
Vista:

Trim de todos los varchar en la BD

Publicado por Carlos (2 intervenciones) el 03/08/2007 08:57:13
Buenas, estoy pegandome para hacer un Trim de todos los varchar que hay en mi BD sin tener que ir metiendo columna a columna, ya que son unas 200 tablas.

Mas o menos creo que el camino sería cruzar syscolumns con systables, más o menos algo similar a esto pero terminandolo.. como lo veis? alguna idea mejor.

select 'UPDATE ' || SYSTABLE.TABLE_NAME || ' SET ' || SYSCOLUMN.COLUMN_NAME || ' = TRIM(' || SYSCOLUMN.COLUMN_NAME || ');' FROM SYSTABLE, SYSCOLUMN WHERE SYSTABLE.TABLE_ID = SYSCOLUMN.TABLE_ID;
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

RE:Trim de todos los varchar en la BD

Publicado por carrillo (39 intervenciones) el 03/08/2007 09:42:24
Con una única tabla puedes hacerlo:
select 'UPDATE '|| TABLE_NAME ||' SET '|| COLUMN_NAME|| '=TRIM('|| COLUMN_NAME||');' from sys.all_tab_columns
where DATA_TYPE='VARCHAR2'
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

RE:Trim de todos los varchar en la BD

Publicado por Quintana (2 intervenciones) el 03/08/2007 10:03:24
A lo mejor te interesa añadir una clausula where en la consulta de "carrillo" del tipo:
WHERE OWNER IN ('nombre del propietario con el que conectas')

Y así te evitas que haga el trim en las tablas de sys, system y demás.
(Si lo quieres para todos los propietarios olvida mi propuesta :) )
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

RE:Trim de todos los varchar en la BD

Publicado por Carlos (2 intervenciones) el 03/08/2007 11:52:14
Me imagino que habrá que añadir lo mismo para el Varchar, y respecto a lo del usuario es correcto lo quiero solo para un usuario!
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