Pergunta

Preciso remover as citações dos nomes das colunas em muitas mesas no meu esquema. Existe alguma maneira de automatizar esse processo?, Alguma função no Oracle ou alguma ferramenta que me permita alterar os nomes das colunas que removem as cotações. Estou usando o Oracle 11g.

ATUALIZAR

Sinto muito, tive que reformular minha pergunta.

desde já, obrigado.

Foi útil?

Solução

Se você só quer se livrar de todos os nomes de colunas sensíveis ao caso

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

Outras dicas

Suponho aqui por "campos", você quer dizer "nomes de colunas".

Lembre -se de que os nomes das colunas no Oracle não são sensíveis ao caso, a menos que você os coloque em cotações ao criar a tabela. Geralmente, não é uma boa ideia usar citações em torno dos nomes das colunas ao criar a tabela. Em outras palavras, se você criar a tabela como esta:

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

Então você ainda pode executar instruções selecionadas como esta:

SELECT column1, column2 FROM FOO

Você também pode fazer isso:

SELECT COLUMN1, COLUMN2 FROM FOO

Observe também que, se você executar esta consulta, verá que o Oracle armazenou os nomes de colunas como maiúsculas no Dicionário de Dados:

SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'FOO'

Portanto, não há necessidade de renomear essas colunas para todas as maiúsculas. As consultas que você escreve podem usar todos os nomes de colunas maiúsculos (assumindo que as tabelas não foram criadas usando aspas em torno dos nomes das colunas) e elas funcionarão bem. Geralmente, é uma má idéia tentar forçá -los a ser sensíveis ao caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top