Valeu Marcelo, O problema estava do resultado do substr mesmo. Obrigado Gerson Luz
_____ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Marcelo Enviada em: sexta-feira, 22 de setembro de 2006 16:00 Para: oracle_br@yahoogrupos.com.br Assunto: RES: [oracle_br] to_number Suando para atualizar Microsiga no Oracle? Eu fiz uma simulação aqui na minha base teste compilando a procedure sem retorno e atualizou os preços corretamente. CREATE OR REPLACE PROCEDURE "SIGA"."U_MUDAPRECO" (IN_PRODUTO in Char, IN_PRECO in Number ) is iPreco Number; begin iPreco := IN_PRECO * 0.90; UPDATE SB1010 SET B1_PRV1 = iPreco WHERE B1_COD = IN_PRODUTO; COMMIT; UPDATE DA1010 SET DA1_PRCVEN = (iPreco * (SELECT TO_NUMBER(SUBSTR(DA0_DESCRI, 1, 1) || ',' || SUBSTR(DA0_DESCRI, 3, 4)) FROM DA0010 WHERE DA0_CODTAB = DA1_CODTAB)) WHERE DA1_CODPRO = IN_PRODUTO; COMMIT; end U_MudaPreco; Valores da tabela DA0010 DA DA0 DA0_DESCRI DA0_DATD DA0_H DA0_DATA DA0_H DA0 D D D R_E_C_N_O_ R_E_C_D_E_L_ -- --- ------------------------------ -------- ----- -------- ----- --- - - - ---------- ------------ 001 1.35 20060922 00:00 23:59 1 1 1 0 1 linha selecionada. Executei a procedure. exec U_MUDAPRECO('SP1',5); E consultei o produto que mudou o preço que era igual ao produto SP2. DA1_CODPRO DA1_PRCVEN --------------- ---------- SP1 6,075 SP2 10 2 linhas selecionadas. E no SB1010 também. B1_COD B1_PRV1 --------------- ---------- SP1 4,5 1 linha selecionada. Não sei se há algum problema com o campo DA0_DESCRI que talvez não retorna valores corretos. Tente executar o update no analyzer para ver se realmente esteja transformando os valores. No mais a procedure está correta. Espero que ajude. Marcelo Alberto Lauschner Depto. De Informática Auto Pratense Ltda * - Fax: (0XX54) 3242-3615 * - E-mail: <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED] _____ De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Gerson Luz - Dpto. TI Enviada em: sexta-feira, 22 de setembro de 2006 14:58 Para: oracle_br@yahoogrupos.com.br Assunto: [oracle_br] to_number Boa Tarde Criei a procedure abaixo, e o segundo update não esta funcionando, se eu tirar o TO_NUMBER e colocar o valor já formatado o update funciona. Por favor, onde estou errando? create or replace procedure U_MudaPreco(IN_PRODUTO in Char, IN_PRECO in Number, OUT_RESULTADO out Number) is iPreco Number; begin iPreco := IN_PRECO * 0.90; UPDATE SB1800 SET B1_PRV1 = iPreco WHERE B1_COD = IN_PRODUTO; COMMIT; UPDATE DA1800 SET DA1_PRCVEN = (iPreco * (SELECT TO_NUMBER(SUBSTR(DA0_DESCRI, 1, 1) || ',' || SUBSTR(DA0_DESCRI, 3, 4)) FROM DA0800 WHERE DA0_CODTAB = DA1_CODTAB)) WHERE DA1_CODPRO = IN_PRODUTO; COMMIT; OUT_RESULTADO := 1; end U_MudaPreco; Grato Gerson Luz -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.7/454 - Release Date: 21/9/2006 [As partes desta mensagem que não continham texto foram removidas] -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.7/454 - Release Date: 21/9/2006 -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.405 / Virus Database: 268.12.7/454 - Release Date: 21/9/2006 [As partes desta mensagem que não continham texto foram removidas] -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------__________________________________________________________________ OPORTUNIDADES DE TRABALHO, VAGAS, EMPREGOS PARA PROFISSIONAIS ORACLE VISITE: http://www.oraclebr.com.br/ __________________________________________________________________ Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html