Jump to content

Alexandre Garcia

Members
  • Content count

    19
  • Joined

  • Last visited

Community Reputation

0 Comum

About Alexandre Garcia

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Alexandre Garcia

    espaço total gasto pelos segmentos

    Pessoal fiz da forma abaixo mas a saida nao está correta ainda o percentual está errado. SELECT owner, data_mb, indx_mb, lob_mb, total_mb, ratio_to_report(total_mb) over () AS RR FROM (SELECT data.owner, NVL(data_mb,0) data_mb, NVL(indx_mb,0) indx_mb, NVL(lob_mb,0) lob_mb, NVL(data_mb,0) + NVL(indx_mb,0) + NVL(lob_mb,0) total_mb FROM ( SELECT owner, ROUND(SUM(data_mb),2) data_mb FROM (SELECT owner, data_mb FROM (SELECT a.owner, b.bytes/1024/1024 AS data_mb FROM dba_tables a, dba_segments b WHERE a.owner = b.owner and a.table_name = b.segment_name)) GROUP BY owner) data, ( SELECT a.owner, ROUND(SUM(b.bytes/1024/1024),2) AS indx_mb FROM dba_indexes a, dba_segments b WHERE a.owner = b.owner and a.index_name = b.segment_name GROUP BY a.owner) indx, ( SELECT a.owner, ROUND(SUM(b.bytes/1024/1024),2) AS lob_mb FROM dba_lobs a, dba_segments b WHERE a.owner = b.owner and a.segment_name = b.segment_name GROUP BY a.owner) lob WHERE data.owner = indx.owner(+) AND data.owner = lob.owner(+)) WHERE owner in ('LOCADORA','MEUESQUEMA') ORDER BY owner;
  2. Alexandre Garcia

    espaço total gasto pelos segmentos

    Bom dia, Algum camarada do grupo por acaso tem uma consulta que mostre o espaço total gasto pelos segmentos de um esquema e o percentual que cada segmento gasta. Obrigado. Abs.
  3. Alexandre Garcia

    Tabela com o nome dos arquivos de um diretorio

    Descobri um lugar que explica. De qualquer forma obrigado Motta. :-) https://asktom.oracle.com/pls/asktom/asktom.search?tag=reading-files-in-a-directory-how-to-get-a-list-of-available-files http://www.oracle-developer.net/display.php?id=513
  4. Alexandre Garcia

    Tabela com o nome dos arquivos de um diretorio

    Olá, Estou precisando criar uma tabela que deve ser preenchida com os nomes dos arquivos do diretório $ORACLE_HOME/rdbms/admin Alguém teria alguma ideia de como posso fazer isso? Ou se isso é possível? Obrigado.
  5. Alexandre Garcia

    Método de resolução de nomes

    Senhores, Qual método de resolução de nomes o sqlplus utiliza? Onde é configurado esse método? Obrigado.
  6. Alexandre Garcia

    ROLE para dar select e insert em todas as tabelas do schema

    Obrigado DLMS. Eu tinha pensado nessa alternativa. O problema dela é que caso uma nova tabela seja criada grant tem que ser dado novamente para tabela nova.
  7. Boa Noite Srs, Tenho um SCHEMA Biblioteca e precisei criar vários usuários que terão acesso a esse schema. Ele poderão ler e inserir dados em todas as tabelas do SCHEMA Biblioteca. Para não ir dando permissão um a um resolvi criar uma role mas não sei como fazer isso. Alguém pode me ajudar? Obrigado.
  8. Alexandre Garcia

    Procedure nao compila

    Resolvido. CREATE OR REPLACE PROCEDURE EliminaPapel (v_COD_PAPEL in number) AS BEGIN DELETE FROM PAPEL WHERE PAPEL.COD_PAPEL = v_COD_PAPEL and PAPEL.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; Obrigado Motta.
  9. Alexandre Garcia

    Procedure nao compila

    --Tabela Papel CREATE TABLE PAPEL( COD_PAPEL NUMBER GENERATED BY DEFAULT AS IDENTITY, DESCRICAO VARCHAR2(60) NOT NULL, CONSTRAINT PK_PAPEL PRIMARY KEY (COD_PAPEL), CONSTRAINT U_PAPEL_01 UNIQUE (DESCRICAO) ) ; --Tabela Participacao CREATE TABLE PARTICIPACAO( COD_PAPEL NUMBER(10, 0) NOT NULL, COD_PROFISSIONAL_CINEMA NUMBER(10, 0) NOT NULL, COD_FILME NUMBER(10, 0) NOT NULL, CONSTRAINT PK_PARTICIPACAO PRIMARY KEY (COD_PAPEL, COD_PROFISSIONAL_CINEMA, COD_FILME) ) ; Coloquei o IN e nada... No where não sei se o senhor estava se referindo ao papel.cod_papel. PROCEDURE EliminaPapel (v_COD_PAPEL in number) AS DECLARE BEGIN DELETE FROM PAPEL WHERE papel.cod_papel = v_COD_PAPEL and papel.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; Continua sem rodar.... :-(
  10. Alexandre Garcia

    Procedure nao compila

    Boa noite, Alguém consegue me dizer porque essa procedure não copila? PROCEDURE EliminaPapel (v_COD_PAPEL PAPEL.COD_PAPEL%TYPE) AS DECLARE BEGIN DELETE FROM PAPEL WHERE cod_papel= v_COD_PAPEL and papel.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; seguinte erro: Erro ao iniciar na linha 1 no comando PROCEDURE EliminaPapel (v_COD_PAPEL PAPEL.COD_PAPEL%TYPE) AS Relatório de erro: Comando Desconhecido Erro ao iniciar na linha 2 no comando DECLARE BEGIN DELETE FROM PAPEL WHERE cod_papel= v_COD_PAPEL and papel.cod_papel NOT IN (SELECT DISTINCT cod_papel from participacao); END EliminaPapel; Relatório de erro: ORA-06550: linha 5, coluna 21: PL/SQL: ORA-00904: "V_COD_PAPEL": identificador inválido ORA-06550: linha 4, coluna 7: PL/SQL: SQL Statement ignored 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action: Abrc
  11. Alexandre Garcia

    execute immediate

    Obrigado. Vou pesquisar.
  12. Alexandre Garcia

    PL/SQL - Select retorna nenhum valor condição do IF é verdadeiro

    Consegui Motta mas estou achando q o codigo está muito longo. CREATE OR REPLACE PROCEDURE excluir_XX (cod_prof NUMBER) IS cursor c_busca IS SELECT FILME.ANO FROM (PARTICIPACAO LEFT JOIN PROFISSIONAL_CINEMA ON PARTICIPACAO.COD_PROFISSIONAL_CINEMA = PROFISSIONAL_CINEMA.COD_PROFISSIONAL_CINEMA) RIGHT JOIN filme ON PARTICIPACAO.COD_FILME = filme.COD_FILME WHERE PROFISSIONAL_CINEMA.COD_PROFISSIONAL_CINEMA = cod_prof GROUP BY PROFISSIONAL_CINEMA.COD_PROFISSIONAL_CINEMA,filme.ano ORDER BY PROFISSIONAL_CINEMA.COD_PROFISSIONAL_CINEMA; v_filme_ano filme.ano%type; flag NUMBER(4); ERRO_2292 EXCEPTION; PRAGMA EXCEPTION_INIT (ERRO_2292, -2292); BEGIN OPEN c_busca; LOOP FETCH c_busca INTO v_filme_ano; EXIT WHEN c_busca%NOTFOUND; Dbms_output.put_line(v_filme_ano); IF v_filme_ano > 1900 AND v_filme_ano < 2001 THEN FLAG := v_filme_ano; END IF; END LOOP; Dbms_output.put_line(flag); CLOSE c_busca; IF flag > 1900 AND flag < 2001 THEN Dbms_output.put_line('Ator participou de filme no seculo XX'); Dbms_output.put_line('Nao excluir'); ELSE Dbms_output.put_line('Ator nao participou de filme no seculo XX'); DELETE FROM profissional_cinema WHERE profissional_cinema.cod_profissional_cinema = cod_prof; END IF; EXCEPTION WHEN ERRO_2292 THEN Dbms_output.put_line('E NAO PODE SER EXCLUIDO POIS TEM PARTICIPACAO EM ALGUM FILME'); END; /
  13. Alexandre Garcia

    PL/SQL - Select retorna nenhum valor condição do IF é verdadeiro

    Já ate consegui fazer algo Motta. O problema agora está no tratamento do erro NO_DATA_FOUND. Quando o SELECT não retorna nada ele não vai para o else e tudo para e saída é como na figura 01. Quando o SELECT retorna tudo funciona OK(figura 02). Teoricamente quando o SELECT rodar e nao tiver nenhum ator participando de filmes no seculo XX retorno deve ser null eu creio. CREATE OR REPLACE PROCEDURE excluir_NOT_SEC_XX (cod_prof NUMBER) IS xx NUMBER; slq VARCHAR2(1000); ERRO_2292 EXCEPTION; PRAGMA EXCEPTION_INIT (ERRO_2292, -2292); BEGIN slq := 'SELECT count(filme.ano) FROM LOCACAO LEFT JOIN ((PARTICIPACAO RIGHT JOIN filme ON PARTICIPACAO.COD_FILME = filme.COD_FILME) LEFT JOIN PROFISSIONAL_CINEMA ON PARTICIPACAO.COD_PROFISSIONAL_CINEMA = PROFISSIONAL_CINEMA.COD_PROFISSIONAL_CINEMA) ON LOCACAO.COD_FILME = filme.COD_FILME WHERE FILME.ANO >1900 AND FILME.ANO < 2001 AND PARTICIPACAO.COD_PROFISSIONAL_CINEMA = '|| cod_prof || ' GROUP BY FILME.ANO'; EXECUTE IMMEDIATE slq INTO xx; IF xx > 0 then Dbms_output.put_line('Ator eh eh do seculo XX'); ELSE Dbms_output.put_line('Ator nao do seculo XX'); DELETE FROM profissional_cinema WHERE profissional_cinema.cod_profissional_cinema = cod_prof; END IF; EXCEPTION WHEN ERRO_2292 THEN Dbms_output.put_line('E NAO PODE SER EXCLUIDO POIS TEM PARTICIPACAO EM ALGUM FILME'); WHEN NO_DATA_FOUND THEN dbms_output.put_line('XXX'); END; / figura 01 figura 02 Nota: Tenho uma constraint não permite excluir atores que participaram de filme. Esse é objetivo: Suponha a seguinte regra de negócio: nenhum profissional de cinema deve ser excluído, caso tenha participado em algum filme produzido no século passado.
  14. Preciso fazer um IF onde a condição verdade seria o não retorno de uma SQL. Isso é possível? Ex: Faço o busca para descobrir se um clube foi campeão entre 1900 e 1950 se não existir escreva não existe. Senão escreva existe.
  15. Alexandre Garcia

    execute immediate

    Não entendi.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.