Diego Uma dúvida: a tabela de destino começa vazia? É certeza que não tem registros "a frente" (PK) da tabela de origem?
Para matar o problema, você vai ter de "debugar"... seja através de uma boa IDE, ou através de saída dbms_output. Na exibição, coloque o valor do campo PK que está tentando inserir no destino. Uma curiosidade (mas não diretamente relacionada ao problema): aquele update feito através de EXECUTE IMMEDIATE poderia ser "direto", não é? (não precisaria ser SQL dinâmico) [ ] André Em 14 de julho de 2014 08:04, Diego Elias diego.u...@gmail.com [oracle_br] < oracle_br@yahoogrupos.com.br> escreveu: > > > André, > > É formado apenas por um campo sequencial que vem diretamente da tabela do > sistema transacional, onde também é PK. > > Att, > Diego Elias > > > Em 11 de julho de 2014 16:10, Andre Santos andre.psantos...@gmail.com > [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: > > >> >> Diego >> >> E como é a PK da tabela de destino? (colunas da PK) >> >> [ ] >> >> André >> >> >> >> Em 11 de julho de 2014 15:13, Diego Elias diego.u...@gmail.com >> [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: >> >> >>> >>> Olá André, >>> >>> O erro de violação de PK ocorre na tabela de destino, que recebe a carga. >>> >>> Att, >>> Diego Elias >>> >>> >>> Em 11 de julho de 2014 14:38, Andre Santos andre.psantos...@gmail.com >>> [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: >>> >>> >>>> >>>> Diego >>>> >>>> E o erro de PK ocorre na tabela de origem (que sofre o Update) ou na de >>>> destino (que recebe a carga)? >>>> >>>> [ ] >>>> >>>> André >>>> >>>> >>>> Em 11 de julho de 2014 10:23, Diego Elias diego.u...@gmail.com >>>> [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: >>>> >>>>> >>>>> >>>>> Olá Chiappa, >>>>> >>>>> Primeiramente agradeço a ajuda. >>>>> Estou evitando colocar códigos, devido ao tamanho e para não fugir >>>>> muito do problema. >>>>> >>>>> Mas para facilitar, segue o código simplificado da rotina. >>>>> >>>>> CREATE OR REPLACE PROCEDURE SP_PROCEDURE (pANO VARCHAR2) >>>>> IS >>>>> vUpdate VARCHAR2 (4000); >>>>> vRetorno NUMBER := 0; >>>>> BEGIN >>>>> FOR x IN 1 .. 12 >>>>> LOOP >>>>> vUpdate := >>>>> 'BEGIN UPDATE SCHEMA_B.CONTROLE SET DTC_REFERENCIA = >>>>> TO_DATE(''01/' >>>>> || x >>>>> || '/' >>>>> || pANO >>>>> || ''',''DD/MM/YYYY'');' >>>>> || ' COMMIT;' >>>>> || ' END;'; >>>>> >>>>> EXECUTE IMMEDIATE vUpdate; >>>>> >>>>> vRetorno := SCHEMA_A.SP_CARGA_TABELA; -- Dentro dessa procedure >>>>> é utilizada a DTC_REFERENCIA da tabela CONTROLE do SCHEMA B >>>>> >>>>> COMMIT; >>>>> END LOOP; >>>>> END; >>>>> >>>>> O problema deve está aqui, pois, como falei, se de forma "grotesca" eu >>>>> alterar o código 12 vezes para: >>>>> >>>>> For x IN 1..1 >>>>> For x IN 2..2 >>>>> For x IN 3..3 >>>>> ... >>>>> For x IN 12..12 >>>>> >>>>> ... ele funciona perfeitamente. >>>>> >>>>> Espero ter ficado mais claro agora. >>>>> >>>>> Obrigado! >>>>> >>>>> >>>>> >>>>> Em 10 de julho de 2014 18:07, jlchia...@yahoo.com.br [oracle_br] < >>>>> oracle_br@yahoogrupos.com.br> escreveu: >>>>> >>>>> >>>>>> >>>>>> Pelo jeito , vc está esquecendo uma das ** OBVIEDADES ** no RDBMS >>>>>> Oracle, que é : absolutamente ** nunca ** há leitura "suja", ie, dados >>>>>> inseridos/updateados numa sessão NUNCA são lidos/disponibilizados para >>>>>> outra - a informação só vai poder ser acessada por outras >>>>>> sessões/transações QUANDO houver o COMMIT... Estou Supondo que por qquer >>>>>> motivo vc tem uma sessão atendendo ao DML do schema A e outra atendendo >>>>>> ao >>>>>> DML do schema B... >>>>>> Mas plz, pra podermos confirmar nos DÊ um CREATE TABLE e uns INSERTs >>>>>> pra popular as tabelas , E uma versão hiper-curta , de meia dúzia de >>>>>> linhas, da tal "rotina de carga" , E um print-screeen da execução dum >>>>>> bloco >>>>>> Pl/SQl que chame a tal rotina e faça o loop desejado NO SQLPLUS, para >>>>>> podermos entender melhor e tentar reproduzir a sua questão... >>>>>> >>>>>> []s >>>>>> >>>>>> Chiappa >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Diego Elias >>>>> >>>>> >>>> >>> >>> >>> -- >>> Diego Elias >>> >>> >> > > > -- > Diego Elias > > >