Pregunta

Necesito quitar las citas de los nombres de las columnas en muchas tablas en mi esquema. hay alguna manera de automatizar este proceso ?, ninguna función en Oracle o alguna herramienta que me permite cambiar los nombres de las columnas de la eliminación de las cotizaciones. Estoy utilizando Oracle 11g.

Actualizar

Lo siento, he tenido que reformular mi pregunta.

gracias de antemano.

¿Fue útil?

Solución

Si lo que desea es deshacerse de todos los nombres de columna entre mayúsculas y minúsculas

SQL> create table foo ( "x" number );

Table created.

SQL> ed
Wrote file afiedt.buf

  1  begin
  2    for x in (select *
  3                from user_tab_cols
  4               where column_name != UPPER(column_name))
  5    loop
  6      execute immediate 'ALTER TABLE ' || x.table_name ||
  7        ' RENAME column "' || x.column_name || '"' ||
  8        ' TO ' || upper(x.column_name);
  9    end loop;
 10* end;
SQL> /

PL/SQL procedure successfully completed.

SQL> desc foo
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 X                                                  NUMBER

Otros consejos

Asumo aquí por "campos" que quiere decir "nombres de columna".

Tenga en cuenta que los nombres de columna en Oracle no son sensibles a mayúsculas a menos que se los pone entre comillas cuando se crea la tabla. Por lo general no es una buena idea usar comillas alrededor de los nombres de las columnas al crear la tabla. En otras palabras, si crea la tabla como la siguiente:

CREATE TABLE FOO (
  colUMN1 varchar2(10),
  CoLumn2 number(38)
)

A continuación, todavía se puede ejecutar instrucciones select como esto:

SELECT column1, column2 FROM FOO

También puede hacer esto:

SELECT COLUMN1, COLUMN2 FROM FOO

Tenga en cuenta también que si se ejecuta esta consulta, verá que Oracle almacena los nombres de columna en mayúsculas en el diccionario de datos:

SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'FOO'

Así que no hay necesidad de cambiar el nombre de estas columnas a mayúsculas. Las consultas se escriben pueden utilizar todos los nombres de columna en mayúsculas (suponiendo que las tablas no fueron creados usando comillas alrededor de los nombres de columna) y que van a funcionar bien. Por lo general es una mala idea para tratar de obligarlos a estar entre mayúsculas y minúsculas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top