[oracle_br] Alteração do nome de tabelas

2014-07-21 Por tôpico Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
Prezados,

Bom Dia

Existe alguma forma de alterar o nome de todas as tabelas?
Exemplo:

xxx_tb1, xxx_tb2 etc mudar para yyy_tb1, yyy.tb2 etc


[oracle_br] Re: Alteração do nome de tabelas

2014-07-21 Por tôpico Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
vi o ALTER TABLE tblAntiga RENAME TO tblNova

Porem queria saber se os objetos ligados a tbl renomeada, serão atualizados
... ou terei de fazer isso manualmente?



Em 21 de julho de 2014 10:14, Mario Rodrigues marioirodrig...@gmail.com
escreveu:

 Prezados,

 Bom Dia

 Existe alguma forma de alterar o nome de todas as tabelas?
 Exemplo:

 xxx_tb1, xxx_tb2 etc mudar para yyy_tb1, yyy.tb2 etc





Re: [oracle_br] Alteração do nome de tabelas

2014-07-21 Por tôpico Emerson Martins emersonmarti...@gmail.com [oracle_br]
Bom dia Mário.


Acredito que você pode usar um bloco anônimo. Porém considere a
possibilidade dos indices, views que fazem referencia a essas tabelas.


Um exemplo aqui:


DECLARE
CURSOR C1 IS SELECT table_name FROM all_tables where UPPER(table_name) like
'*FINAN*%';
v_stmt VARCHAR2(32767) := NULL;
BEGIN
FOR I IN C1 LOOP
v_Stmt := 'RENAME '||I.table_name||' TO* yyy*_'||I.table_name;
EXECUTE IMMEDIATE v_stmt;
v_stmt := NULL;
END LOOP;
END;
/


Utilizei esse link abaixo quando precisei mudar os nomes de todas as
tabelas de um schema que iniciavam com as iniciais FINAN, dai você mudar os
parâmetros.


 Lembrando que efetue em um *ambiente de homologação.*






[1] https://community.oracle.com/thread/1120407?start=0tstart=0


Att,


Emerson Martins
DBA Oracle
Oracle 11g Certified Associate






2014-07-21 10:14 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br:




 Prezados,

 Bom Dia

 Existe alguma forma de alterar o nome de todas as tabelas?
 Exemplo:

 xxx_tb1, xxx_tb2 etc mudar para yyy_tb1, yyy.tb2 etc







Re: [oracle_br] Alteração do nome de tabelas

2014-07-21 Por tôpico Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
Emerson

Obrigado ... vou tentar fazer e dou um retorno ... obrigado mesmo!


Em 21 de julho de 2014 10:49, Emerson Martins emersonmarti...@gmail.com
[oracle_br] oracle_br@yahoogrupos.com.br escreveu:



 Bom dia Mário.

 Acredito que você pode usar um bloco anônimo. Porém considere a
 possibilidade dos indices, views que fazem referencia a essas tabelas.

 Um exemplo aqui:

 DECLARE
 CURSOR C1 IS SELECT table_name FROM all_tables where UPPER(table_name)
 like '*FINAN*%';
 v_stmt VARCHAR2(32767) := NULL;
 BEGIN
 FOR I IN C1 LOOP
 v_Stmt := 'RENAME '||I.table_name||' TO* yyy*_'||I.table_name;
 EXECUTE IMMEDIATE v_stmt;
 v_stmt := NULL;
 END LOOP;
 END;
 /

 Utilizei esse link abaixo quando precisei mudar os nomes de todas as
 tabelas de um schema que iniciavam com as iniciais FINAN, dai você mudar os
 parâmetros.

  Lembrando que efetue em um *ambiente de homologação.*



 [1] https://community.oracle.com/thread/1120407?start=0tstart=0

 Att,

 Emerson Martins
 DBA Oracle
 Oracle 11g Certified Associate



 2014-07-21 10:14 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com
 [oracle_br] oracle_br@yahoogrupos.com.br:



 Prezados,

 Bom Dia

 Existe alguma forma de alterar o nome de todas as tabelas?
 Exemplo:

 xxx_tb1, xxx_tb2 etc mudar para yyy_tb1, yyy.tb2 etc



  



[oracle_br] Re: Alteração do nome de tabelas

2014-07-21 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Opa, então :

 a. não, não há no RDBMS Oracle (a afaik na maioria dos outros) um 
comando/built-in que permita o RENAME de múltiplas tabelas de uma só vez - no 
caso do RDBMS Oracle, o procedimento é emitir um comando RENAME TABLE para cada 
tabela... O que vc pode fazer para Agilizar é um pequeno programinha PL/SQL 
e/ou um pequeno script (numa ferramenta-cliente que permita, como sqlplus ou 
sql developer, entre outras) que gere e execute (ao ao menos gere) os comandos 
RENAME TABLE todos que vc precisa Pelo sqlplus, por exemplo, vc conecta ao 
banco em questão e digita algo do tipo (trocando pelos seus dados, claro):
 SPOOL renomear.sql
 SELECT 'RENAME TABLE ' || table_name || ' TO ' || substr(table_name,4) || 
';'
  FROM DBA_TABLES WHERE owner='DONODASTABELAS' AND TABLE_NAME LIKE '%';
SPOOL OFF
 aí edita o arquivo (se for preciso alguma mínima alteração) e executa o script 
renomear.sql . Via PL/SQL vc usa o EXECUTE IMMEDIATE, + ou - tipo :
 BEGIN
for r in SELECT TABLE_NAME FROM DBA_TABLES WHERE owner='DONODASTABELAS' AND 
TABLE_NAME LIKE '%' loop
   execute immediate('RENAME TABLE ' || r.table_name || ' TO ' || 
substr(r.table_name,4)) ;
end loop;
 END;
 
- vai do gosto e do conhecimento - eu gosto mais da opção de gerar um 
Arquivo-texto com os comandos porque (entre outras vantagens) esse tal arquivo 
é uma Evidência, que pode ser anexada à Documentação
 
 
 b. sim, os elementos do database que são Subordinados à tabela a renomear e 
Apontavam para o/ Dependiam do nome antigo da tabela (ie, índices, constraints, 
triggers, etc) Automaticamente passarão a apontar para o novo nome depois de um 
RENAME.
  O que *** NÃO VAI SER *** alterado automaticamente são os objetos do database 
que se referenciam/usam o nome  da tabela a renomear num SQL qualquer deles 
(principalmente VIEWS, PROCEDURES, FUNCTIONS e PACKAGES) - o código de todos 
esses caras VAI continuar tendo uma referência para o nome antigo, que deverá 
ser editada/corrigida manualmente por vc ...
  NEM PRECISO DIZER, os objetos EXTERNOS ao database (ie, o código da tua 
Aplicação, eventuais shell scripts/scripts sqlplus, relatórios, etc) 
logicamente TAMBÈM podem  conter referências às tabelas renomeadas, VAI ter que 
ser revisto após os RENAMEs
  
[]s

  Chiappa

Re: [oracle_br] Re: Alteração do nome de tabelas

2014-07-21 Por tôpico Mario Rodrigues marioirodrig...@gmail.com [oracle_br]
Chiappa,

Como sempre muito solícito com todos ... obrigado a todos pela ajuda!!!

o/


Em 21 de julho de 2014 13:14, jlchia...@yahoo.com.br [oracle_br] 
oracle_br@yahoogrupos.com.br escreveu:



 Opa, então :

  a. não, não há no RDBMS Oracle (a afaik na maioria dos outros) um
 comando/built-in que permita o RENAME de múltiplas tabelas de uma só vez -
 no caso do RDBMS Oracle, o procedimento é emitir um comando RENAME TABLE
 para cada tabela... O que vc pode fazer para Agilizar é um pequeno
 programinha PL/SQL e/ou um pequeno script (numa ferramenta-cliente que
 permita, como sqlplus ou sql developer, entre outras) que gere e execute
 (ao ao menos gere) os comandos RENAME TABLE todos que vc precisa Pelo
 sqlplus, por exemplo, vc conecta ao banco em questão e digita algo do tipo
 (trocando pelos seus dados, claro):
  SPOOL renomear.sql
  SELECT 'RENAME TABLE ' || table_name || ' TO ' ||
 substr(table_name,4) || ';'
   FROM DBA_TABLES WHERE owner='DONODASTABELAS' AND TABLE_NAME LIKE '%';
 SPOOL OFF
  aí edita o arquivo (se for preciso alguma mínima alteração) e executa o
 script renomear.sql . Via PL/SQL vc usa o EXECUTE IMMEDIATE, + ou -
 tipo :
  BEGIN
 for r in SELECT TABLE_NAME FROM DBA_TABLES WHERE
 owner='DONODASTABELAS' AND TABLE_NAME LIKE '%' loop
execute immediate('RENAME TABLE ' || r.table_name || ' TO ' ||
 substr(r.table_name,4)) ;
 end loop;
  END;

 - vai do gosto e do conhecimento - eu gosto mais da opção de gerar um
 Arquivo-texto com os comandos porque (entre outras vantagens) esse tal
 arquivo é uma Evidência, que pode ser anexada à Documentação


  b. sim, os elementos do database que são Subordinados à tabela a renomear
 e Apontavam para o/ Dependiam do nome antigo da tabela (ie, índices,
 constraints, triggers, etc) Automaticamente passarão a apontar para o novo
 nome depois de um RENAME.
   O que *** NÃO VAI SER *** alterado automaticamente são os objetos do
 database que se referenciam/usam o nome  da tabela a renomear num SQL
 qualquer deles (principalmente VIEWS, PROCEDURES, FUNCTIONS e PACKAGES) - o
 código de todos esses caras VAI continuar tendo uma referência para o nome
 antigo, que deverá ser editada/corrigida manualmente por vc ...
   NEM PRECISO DIZER, os objetos EXTERNOS ao database (ie, o código da tua
 Aplicação, eventuais shell scripts/scripts sqlplus, relatórios, etc)
 logicamente TAMBÈM podem  conter referências às tabelas renomeadas, VAI ter
 que ser revisto após os RENAMEs

 []s

   Chiappa
  



[oracle_br] Erros Oracle (Ora....)

2014-07-21 Por tôpico alessandro micromap alessandro.micro...@gmail.com [oracle_br]
Boa Tarde

Banco Oracle 10gr2 com Windows 2003 Server.

Gostaria de saber como traduzir aqueles erros oracle (Ora-), pois vários
usuários reclamam que não sabem interpretar a mensagem em Inglês.


Alguém tem alguma ideia de como resolver isso.

Desde já muito obrigado.
Alessandro


[oracle_br] Add Parametro no SPFILE

2014-07-21 Por tôpico 'Ednilson Silva' ednilson.si...@jbs.com.br [oracle_br]
Pessoal,

Como faço para adicionar um novo parâmetro no SPFILE.

 

Estou tentando executar este abaixo.

 

SQL alter system set diagnostic_dest = '$ORACLE_HOME/rdbms/log'
scope=spfile;

alter system set diagnostic_dest = '$ORACLE_HOME/rdbms/log' scope=spfile

 *

ERROR at line 1:

ORA-02065: illegal option for ALTER SYSTEM

 

Grato,

Ednilson Silva

 



[oracle_br] Re: Add Parametro no SPFILE

2014-07-21 Por tôpico jlchia...@yahoo.com.br [oracle_br]
A sintaxe é Exatamente essa afaik : o erro tá indicando que diagnostic_dest não 
é um parâmetro que ele conheça Será que o teu database não é 10g ou 
inferior ??? SE sim, tá explicado, esse parâmetro iirc só foi introduzido no 
11g...

 []s

  Chiappa

[oracle_br] Re: Erros Oracle (Ora....)

2014-07-21 Por tôpico jlchia...@yahoo.com.br [oracle_br]
Explica melhor : vc está falando das mensagens de erro do database, enviadas 
PELO DATABASE para o cliente ?? Se sim, basicamente o que vc tem que fazer é 
setar a tool cliente/linguagem/ambiente de programação para informar ao 
database a lingguagem que vc quer usar, que aí as mensagens de erro, dias da 
semana, etc, etc , serão traduzidas Já se a mensagem de erro vinda do 
database tá sendo Processada pela tool/ferramenta de programação (como sei por 
exemplo que o JDBC pode fazer) , aí outras técnicas vão ser necessárias, talvez 
...

== Exemplo com SQLPLUS como tool-cliente, que se configura com variáveis de 
ambiente (OBVIAMENTE, outras tools/linguagens se configuram de outras maneiras) 
:

== database está configurado para usar Inglês :


SYS:AS SYSDBA@orcl:SQLselect * from nls_database_parameters;

PARAMETER
--
VALUE
-
NLS_LANGUAGE
AMERICAN

NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_TERRITORY
AMERICA

NLS_CURRENCY
$

NLS_ISO_CURRENCY
AMERICA

NLS_NUMERIC_CHARACTERS
.,

NLS_CHARACTERSET
AL32UTF8

NLS_CALENDAR
GREGORIAN

NLS_DATE_FORMAT
DD-MON-RR

NLS_DATE_LANGUAGE
AMERICAN

== acesso o database SEM especificar NLS settings para o cliente, ele usa o 
default do database :

[oracle@localhost ~]$ echo $NLS_LANG

[oracle@localhost ~]$ 

[oracle@localhost ~]$ sqlplus / as sysdba

SYS:AS SYSDBA@orcl:SQLselect 1/0 from dual;
select 1/0 from dual
*
ERROR at line 1:
ORA-01476: divisor is equal to zero


SYS:AS SYSDBA@orcl:SQLexit

== agora seto o NLS environment do cliente, NO MEU CASO de sqlplus via 
variável NLS :

[oracle@localhost ~]$ export NLS_LANG=BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8
[oracle@localhost ~]$ echo $NLS_LANG
BRAZILIAN PORTUGUESE_BRAZIL.AL32UTF8

== óia aí as msg de erro em pt-br :

[oracle@localhost ~]$ sqlplus / as sysdba


SYS:AS SYSDBA@orcl:SQLselect 1/0 from dual;
select 1/0 from dual
*
ERROR at line 1:
ORA-01476: o divisor é igual a zero


SYS:AS SYSDBA@orcl:SQLSELECT * FROM NLS_SESSION_PARAMETERS;

PARAMETER

VALUE
-
NLS_LANGUAGE
BRAZILIAN PORTUGUESE

NLS_TERRITORY
BRAZIL

NLS_CURRENCY
R$

NLS_ISO_CURRENCY
BRAZIL

NLS_NUMERIC_CHARACTERS
,.

NLS_CALENDAR
GREGORIAN

NLS_DATE_LANGUAGE
BRAZILIAN PORTUGUESE

NLS_SORT
WEST_EUROPEAN


 []s
 
   Chiappa
   
== REPITO : no Meu caso o setting é feito via variável, Outras tools demandam 
Outros ajustes Diga EXATAMENTE em que vc desenvolveu e onde/como vc roda o 
Aplicativo, que eventualmente quem usa a mesma coisa pode te dar umas dicas...