Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sarchigana

Colchetes no sql plus

Recommended Posts

olá galera.....minha duvida é a seguinte

passei um comando q deleta as tables e as views temporarias de ms sql para oracle....

mas hoje percebi q as mascaras não funcionam por causa dos colchetes

 

 

a minha duvida é como farei para o oracle entender os campos q usar de 0 a 9, ou usam os caracters m ou n....

e coisas desse tipo....

 

essa mascara esta dropando apenas as tabelas q começam com TT_ , TTN_ e ##TT_

o resto eu testei fazendo um spool para um arquivo para ver o q ele iria deletar, mas notei q as outras máscaras apesar de existirem casos no banco, o código não esta listando (dropando)

o codigo é esse:

 

begin

 

FOR R IN (SELECT OBJECT_NAME, OBJECT_TYPE

FROM USER_OBJECTS

WHERE OBJECT_TYPE IN ('TABLE','VIEW')

AND

(OBJECT_NAME LIKE '[bCHMS]%[_]%[0-9]'

OR OBJECT_NAME LIKE '%[M,N][0-9]%[C,F,G,I][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

OR OBJECT_NAME LIKE 'TABINT%[0-9]'

OR OBJECT_NAME LIKE 'TABMV%[0-9]'

OR OBJECT_NAME LIKE 'TABTEMP%_[0-9]'

OR OBJECT_NAME LIKE 'TABTMP%_[0-9]'

OR OBJECT_NAME LIKE 'TTN_%'

OR OBJECT_NAME LIKE 'TT_%'

OR OBJECT_NAME LIKE '%##TT_%'

OR OBJECT_NAME LIKE '[V][^T]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'

OR OBJECT_NAME LIKE '[V][T][_]%'))

 

LOOP

EXECUTE IMMEDIATE 'DROP ' || R.OBJECT_TYPE || ' ' || R.OBJECT_NAME;

END LOOP;

 

END;

/

exit ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe esta sintaxe

 

Uma solução alternativa

 

SELECT *
FROM USER_TABLES
WHERE NOT (TRANSLATE(TABLE_NAME,'0123456789','XXXXXXXXXX') = TABLE_NAME)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.