sexta-feira, 18 de fevereiro de 2011

Facilitador de Scripts – Oracle

Alguns scripts para facilitar a programação PL/SQL em Oracle:


 -- >>>>> Abre os campos sem alias <<<<<
   
 set pagesize 500;  
   
 select lower(RPAD(T.COLUMN_NAME,  
   
 20,  
   
 ' ') || ',-- ' || t.DATA_TYPE || '(' || case  
   
 when t.DATA_TYPE = 'NUMBER' then  
   
 T.DATA_PRECISION || ',' || T.DATA_SCALE  
   
 else  
   
 cast(T.DATA_LENGTH as varchar2(10))  
   
 end )|| ')' Coluna  
   
 from user_tab_columns t  
   
 where upper(t.TABLE_NAME) = upper('&NOME_TABELA')  
   
 order by t.COLUMN_ID  


   
 -- >>>> Abre os campos com alias <<<<
   
 set pagesize 500;  
   
 select '&alias'||'.'||lower(RPAD(T.COLUMN_NAME,  
   
 20,  
   
 ' ') || ',– ' || t.DATA_TYPE || '(' || case  
   
 when t.DATA_TYPE = 'NUMBER' then  
   
 T.DATA_PRECISION || ',' || T.DATA_SCALE  
   
 else  
   
 cast(T.DATA_LENGTH as varchar2(10))  
   
 end) || ')' Coluna  
   
 from user_tab_columns t  
   
 where upper(t.TABLE_NAME) = upper('&NOME_TABELA')  
   
 order by t.COLUMN_ID  
   


 -- >>>>> Faz a lista padrão para o insert <<<<<
   
 select RPAD(case T.DATA_TYPE  
   
 when 'VARCHAR2' then  
   
 CHR(39) || ' ' || CHR(39)  
   
 when ‘CHAR’ then  
   
 CHR(39) || ' ' || CHR(39)  
   
 when 'NUMBER' then  
   
 '0'  
   
 when 'DATE' then  
   
 'NULL'  
   
 else  
   
 ' NÃO DEFINIDO '  
   
 end || ',',  
   
 20,  
   
 ' ') || ' – ' || T.COLUMN_NAME || ' '||t.DATA_TYPE||'(' || case  
   
 when t.DATA_TYPE = 'NUMBER' then  
   
 T.DATA_PRECISION || ',' || T.DATA_SCALE  
   
 else  
   
 cast(T.DATA_LENGTH as varchar2(10))  
   
 end || ')' Coluna  
   
 from user_tab_columns t  
   
 where t.TABLE_NAME = upper('&NOME_TABELA')  
   
 order by t.COLUMN_ID  


   
 -- >>>>> Faz a lista para o insert com os proprios campos da tabela.  
 -- Utilizado quando se le um registro e se cria outro praticamente igual..  
 -- ai só se muda os campos desejados <<<<<  
   
 select lower( RPAD('&Alias'||'.'||T.COLUMN_NAME,25,' ')||', — ' || T.COLUMN_NAME || ' — '||t.DATA_TYPE||'(' || case  
   
 when t.DATA_TYPE = 'NUMBER' then  
   
 T.DATA_PRECISION || ',' || T.DATA_SCALE  
   
 else  
   
 cast(T.DATA_LENGTH as varchar2(10))  
   
 end || ')') Coluna  
   
 from user_tab_columns t  
   
 where t.TABLE_NAME = upper('&NOME_TABELA')  
   
 order by t.COLUMN_ID  
   
 -- Autor: Djeison Mickael --   

Nenhum comentário:

Postar um comentário