Mostrando postagens com marcador tamanho. Mostrar todas as postagens
Mostrando postagens com marcador tamanho. Mostrar todas as postagens

sexta-feira, 2 de fevereiro de 2024

Script para alterar tamanho de campo

 Script para alterar tamanho de campo em todas as tabelas que ele exista.


 BEGIN  
   DECLARE P_SCRIPT VARCHAR2(400);  
       NOVO_TAMANHO NUMBER(10);  
     CURSOR CUR_CONTROLE IS   
      SELECT 'ALTER TABLE ' || TABLE_NAME || ' MODIFY ' || COLUMN_NAME || ' VARCHAR2('||TO_CHAR(NOVO_TAMANHO)||')'   
     FROM USER_TAB_COLUMNS C  
     WHERE COLUMN_NAME LIKE '%CONTROLE%'   --<<=== ALTERAR CAMPO
      AND TABLE_NAME LIKE 'T%'  
      AND EXISTS(SELECT 1 FROM USER_TABLES T WHERE T.TABLE_NAME = C.TABLE_NAME)  
      AND DATA_LENGTH < NOVO_TAMANHO  
      AND DATA_TYPE IN ('VARCHAR2', 'CHAR', 'VARCHAR')  
     ORDER BY TABLE_NAME;  
   BEGIN  
     NOVO_TAMANHO := 12;  --<<==== ALTERAR 
    OPEN CUR_CONTROLE;  
    LOOP  
      FETCH CUR_CONTROLE   
      INTO P_SCRIPT;  
      EXIT WHEN CUR_CONTROLE%NOTFOUND;  
     EXECUTE IMMEDIATE P_SCRIPT;      
    END LOOP;  
     CLOSE CUR_CONTROLE;  
   EXCEPTION WHEN OTHERS THEN  
     RAISE_APPLICATION_ERROR(-20101, P_SCRIPT ||' erro: '||SQLERRM);    
   END;   
 END;  
 /  

terça-feira, 31 de janeiro de 2017

Consultar o tamanho disponível no banco de dados Oracle

Via Toad ou SQL Developer executar o comando abaixo:


SELECT 'Database Tamanho' "*****"
,ROUND(SUM(ROUND(SUM(NVL(fs.bytes/1024/1024,0)))) /
SUM(ROUND(SUM(NVL(fs.bytes/1024/1024,0))) + ROUND(df.bytes/1024/
1024 - SUM(NVL(fs.bytes/1024/1024,0)))) * 100, 0) "%Livre"
,ROUND(SUM(ROUND(df.bytes/1024/1024 - SUM(NVL(fs.bytes/1024/
1024,0)))) / SUM(ROUND(SUM(NVL(fs.bytes/1024/1024,0))) +
ROUND(df.bytes/1024/1024 - SUM(NVL(fs.bytes/1024/1024,0)))) * 100,
0) "%Usado"
,SUM(ROUND(SUM(NVL(fs.bytes/1024/1024/1024,0)))) "GB Livre"
,SUM(ROUND(df.bytes/1024/1024/1024
- SUM(NVL(fs.bytes/1024/1024/1024,0)))) "GB Usado"
,SUM(ROUND(SUM(NVL(fs.bytes/1024/1024/1024,0))) + ROUND(df.bytes/1024/
1024/1024
- SUM(NVL(fs.bytes/1024/1024/1024,0)))) "Tamanho em GB"
FROM dba_free_space fs, dba_data_files df
WHERE fs.file_id(+) = df.file_id
GROUP BY df.tablespace_name, df.file_id, df.bytes,
df.autoextensible
ORDER BY df.file_id ;