Olá Roberto, obrigado por sua ajuda... Digitando o comando SHOW ERROR, corrigi alguns erros e a proc foi alterada, porém, tah acusando ainda erro na linha de declaração do cursor:
CURSOR verifica_ordem IS o erro acusado é: PLS-00103: Encontrado o símbolo "VERIFICA_ORDEM" quando um dos seguintes símbolos era esperado: := . ( @ % ; A proc foi refeita e ficou da seguinte forma: CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod IS v_linha number; v_com varchar2(1000); BEGIN v_com := 'CREATE TABLE t_ordem_cadastro as'|| 'SELECT rownum linha, product_id, nome '|| 'FROM products'; EXECUTE IMMEDIATE v_com; CURSOR verifica_ordem IS SELECT linha FROM t_ordem_cadastro FOR UPDATE; BEGIN OPEN verifica_ordem; LOOP FETCH verifica_ordem into v_linha; EXIT WHEN verifica_ordem%NOTFOUND; UPDATE products SET product_id = v_linha WHERE CURRENT OF verifica_ordem; END LOOP; COMMIT; CLOSE verifica_ordem; END; END; / O que poderá ser agora? Grato! Matheus Malta ----- Original Message ----- From: "Roberto Oshikawa" <rcoshik...@gmail.com> To: <oracle_br@yahoogrupos.com.br> Sent: Monday, November 09, 2009 4:14 PM Subject: Re: [oracle_br] Dúvida - Procedure O oracle nao te mostra nenhuma mensagem de erro ? ou código do erro ? depois que vc compilar a proc digite show error 2009/11/9 Matheus Malta <maltamath...@gmail.com> > > > Galera... Seguinte... > > Tô tentando desenvolver uma procedure no ambiente do SQLPlus... Mas o > problema é que, ao compilar, ela tah acusando erro de compilação... E não > mostra o erro que está ocorrendo, apenas aponta a linha onde o erro está > ocorrendo... > > Fiz alguns testes removendo a linha ou substituindo o comando, mesmo assim, > ainda não consegui proceder com a compilação... > > Alguém poderia me ajudar nesse aspecto? > > Segue abaixo a procedure: > > CREATE OR REPLACE PROCEDURE prc_updt_ordem_cadastro_prod > IS > v_linha number; > v_com varchar2(1000); > > BEGIN > > v_com := 'CREATE TABLE t_ordem_cadastro as '|| > 'SELECT rownum linha, product_id, nome '|| > 'FROM products'; > > EXECUTE IMMEDIATTE v_com; > > CURSOR check_ordem IS > SELECT linha > FROM t_ordem_cadastro FOR UPDATE; > > BEGIN > > OPEN check_ordem; > > LOOP > > FETCH check_ordem into v_linha; > > EXIT WHEN check_ordem%NOTFOUND; > > UPDATE products SET product_id = v_linha > WHERE CURRENT OF check_ordem; > > END LOOP; > > COMMIT; > > CLOSE check_ordem; > > END; > > END prc_updt_ordem_cadastro_prod; > / > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -------------------------------------------------------------------------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira >responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -------------------------------------------------------------------------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: >http://www.oraclebr.com.br/ ------------------------------------------------------------------------------------------------------------------------ Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas]