Ir para conteúdo

spernega

Members
  • Total de itens

    56
  • Registro em

  • Última visita

Reputação

4 Comum

2 Seguidores

Sobre spernega

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    São Paulo - SP

Últimos Visitantes

114816 visualizações
  1. spernega

    Replicar base local para base rede

    Bom dia Hiccup, Para fazer a importação usando o sqldeveloper, de uma olhada nesse site: ttp://www.oracle.com/webfolder/technetwork/tutorials/obe/db/hol08/sqldev_migration/msaccess/migrate_microsoft_access_otn.htm Para criar uma rotina de importação, acho que você precisaria criar um link no Oracle referenciando a base Access usando Heterogeneous Services. Se você quiser uma documentação do HS, me manda o seu e-mail, não consigo anexar pelo forum. Ou da pra caçar na net também. Depois disso você cria uma rotina para buscar os dados com as regras que você precisar.
  2. spernega

    Monitoramento de Tabelas

    Bom dia, Ai não é tão simples. Tem alguns artigos por ai que tratam de auditoria com recursos do banco mesmo: https://vidadba.wordpress.com/2016/10/17/auditoria-de-objetos-no-oracle/ http://www.dartanghan.com.br/oracledb/auditoria-simples-audit_trail/ ALTER SYSTEM SET AUDIT_TRAIL=DB,EXTENDED SCOPE=SPFILE; dá uma olhada e veja se ajuda um pouco. Boa sorte
  3. spernega

    Monitoramento de Tabelas

    Boa tarde Robson, Existem algumas maneiras sim. Aqui eu criei uma tabela para armazenar as alterações, chamo de audit_tabela. Create Table Audit_Tabela( Nm_Tabe Varchar2(40), Pk1 Varchar2(120), Pk2 Varchar2(120), Pk3 Varchar2(120), Pk4 Varchar2(120), Pk5 Varchar2(120), Pk6 Varchar2(120), Pk7 Varchar2(120), No_User Varchar2(40), Tp_Tran Varchar2(1), Nm_Camp Varchar2(40), Vl_Anti Varchar2(255), Vl_Novo Varchar2(255), Dt_Alte Date, No_User_Rede Varchar2(50), Ip_User_Rede Varchar2(50)) Eu uso a PK das tabelas que eu quero monitorar. Crio uma trigger em cada tabela que eu quero monitorar para alimentar esta tabela. Se não me engano existem alguns recursos do próprio Oracle.
  4. spernega

    Concatenação de informações

    Bom dia José, Para montar esse resultado, o melhor é utilizar o LISTAGG (só a partir do banco 11), porém não existe um DISTINCT para o LISTAGG. Fiz um teste, veja se ajuda: create table xx ( col1 varchar2(2), col2 varchar2(2), col3 varchar2(2)) tablespace dados; insert into xx values('x','y','r0'); insert into xx values('x','y','r1'); insert into xx values('x','y','rs'); insert into xx values('x','y','r '); with x as( SELECT listagg(col1,',') WITHIN GROUP (ORDER BY col1) col1, listagg(col2,',') WITHIN GROUP (ORDER BY col2) col2, listagg(col3,',') WITHIN GROUP (ORDER BY col3) col3 from xx) select substr(regexp_replace(col1,'([^,]+)(,\1)+', '\1') ,1,10) col1, substr(regexp_replace(col2,'([^,]+)(,\1)+', '\1') ,1,10) col2, substr(regexp_replace(col3,'([^,]+)(,\1)+', '\1') ,1,10) col3 from x;
  5. spernega

    Modelagem de Dados

    Boa tarde, Não conheço esse do MySql, mas a Oracle tem o Oracle datamodeler que é free.
  6. spernega

    Saber o tamanho das imagens do banco

    Bom dia Marcelo, Achei uma alternativa em outro forum: http://www.dbforums.com/showthread.php?828265-How-can-I-get-the-size-of-a-long-raw Veja se da para adaptar para sua necessidade. declare v_longcol long raw; v_size number; cursor get_row is select im_clas_veic from classificacao_veiculo where cd_clas_veic = '3C'; begin open get_row; fetch get_row into v_longcol; loop exit when get_row%notfound; v_size := utl_raw.length(v_longcol); --- loads lenght of long raw column into v_size dbms_output.put_line(v_size); --- displays lenght of column fetch get_row into v_longcol; end loop; close get_row; end; /
  7. Boa tarde, Dependendo de como você estiver executando os inserts, você pode setar o autocommit create table teste( Id_teste number(12)); set autocommit 10 insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1); insert into teste (id_teste) values(1);
  8. spernega

    consulta oracle com duas tabelas diferentes

    Boa tarde Tiago, Seria alguma coisa mais ou menos assim: Select ... From tabela_primeira t1, cadastro_Cliente t2 where (t1.pessoa = t2.codigo or t1.coligada = t2.codigo) ou Select ... From tabela_primeira t1, cadastro_Cliente t2 where t1.pessoa = t2.codigo union Select ... From tabela_primeira t1, cadastro_Cliente t2 where t1.coligada = t2.codigo /
  9. spernega

    "Collection" de Bind´s variable

    Bom dia, sem responder diretamente a sua pergunta em relação à collections, a linha que você está iniciando é boa. Pelo meno eu uso dessa forma quando necessário. seguindo essa linha não resolveria, apesar de você ter 8 parâmetros? create or replace procedure pr_teste( pAtivo number, pCampo2 number, pCampo3 varchar2, pCampo4 varchar2, pCursor in out SYS_REFCURSOR ) is -- vQuery varchar2(1000); vWhere varchar2(1000) := ''; begin -- vQuery := 'select * from clientes where ativo = '||to_char(nvl(pativo,1)); -- if nvl(pCampo2,0) > 0 then vWhere := vWhere || ' and campo2 = '||to_Char(pcampo2); end if; if pCampo3 is not null then vWhere := vWhere || ' and campo3 = '||''''||pcampo3||''''; end if; if pCampo4 is not null then vWhere := vWhere || ' and campo4 = '||''''||pcampo4||''''; end if; -- if vWhere is not null then vQuery := vQuery||vWhere; end if; -- open pCursor for vQuery; loop fetch pCursor into ...
  10. spernega

    Agrupar dados na consulta em oracle

    Boa tarde, Tente assim: (Eu não fiz nenhum teste) SELECT estabelecimento, dia, agenda, especialidade, sum(total_pacientes) total_pacientes, sum(total_pacientes_atendidos) total_pacientes_atendidos from ( SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, COUNT(DISTINCT a.nm_paciente) total_pacientes, 0 total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA <> 'C' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente union all SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento, TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia, initcap(b.DS_CURTA) agenda, tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade, 0 atendidos, COUNT(DISTINCT a.nm_paciente) total_pacientes_atendidos FROM tasy.agenda_consulta a, tasy.agenda b WHERE a.cd_agenda = b.cd_agenda AND b.ie_situacao = 'A' and trunc(a.dt_agenda) between :dt_inicial and :dt_final and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0)) AND a.nm_paciente IS NOT NULL AND a.IE_STATUS_AGENDA = 'E' and a.cd_agenda = 7216 GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'), b.ds_curta, tasy.obter_desc_espec_agenda(b.cd_especialidade), obter_nome_estabelecimento(b.cd_estabelecimento) HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente) group by estabelecimento, dia, agenda, especialidade;
  11. spernega

    Classes Java - Bibliotecas

    Cara, não sei se estou falando bobagens, mas numa rotina que tem no meu sistema, que não fui eu quem desenvolveu, está assim: create or replace and compile java source named "jv_Send_mail" as import java.io.*; import java.sql.*; import java.util.Properties; import java.util.Date; import javax.activation.*; import javax.mail.*; import javax.mail.internet.*; import oracle.jdbc.driver.*; import oracle.sql.*;
  12. spernega

    Tabela temporária dentro de select

    Bom dia Patrick, Tente executar sem colocar n.qt_saida no group by.
  13. Boa tarde Alex, Dei uma olha por ai, aparentemente as DBMS_UTILITY tem uma melhor performance em tempo de execução.
  14. spernega

    Consulta com mais de uma tabela

    Bom dia tainan, Do meu ponto de vista, os dois são válidos, são apenas de padrões diferente. Padrão tradicional e o ANSI (com join). Existem várias discussões sobra a facilidade do padrão ANSI. O padrão é mais fácil para usar a mesma query em DBs diferentes Eu trabalho sempre com o padrão tradicional e em todos os testes que eu já fiz, não percebi alteração de performance das querys.
  15. spernega

    Inserir um espaco em branco em um registro

    Bom dia , Tente algo assim: with x as( select 'EUSACD9484304934' matr from dual union select 'EUA CD9843274329' matr from dual) select case when length(substr(matr,1,4)) = 4 then substr(matr,1,4) else rpad(substr(matr,1,4),4,' ') end prim, -- substr(matr,5,100) segu from x;
×

Informação importante

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