Ir para conteúdo

Alexandre Garcia

Members
  • Total de itens

    19
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Alexandre Garcia

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  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. Alexandre Garcia

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

    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.
×

Informação importante

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