Re: [oracle_br] Como remover o traço
Pessoal, Bom Dia Como precisava ser algo pra ontem (como sempre) fiz um novo extract a inseri os dados (q preenche a variável) em tabelas diferentes (um pra cada select da function) isso já resolveu (vai saber pq) ... sinceramente não faço ideia o que possa ser ... Emerson eu tinha tentado usar o regexp tb sem sucesso .. Sergio tai nao tinha tentado a questão do translate .. mas acho q nao é isso tb .. mas vou testar assim que tiver um tempinho aqui Luis vi sim, acho que eu não soube implementar o sua ideia, pois nao rodou ... mas enfim ainda vou rever tudo e pra tentar achar o motivo disso ... Obrigado de verdade a todos pela ajuda de sempre ... o/ 2017-06-09 12:00 GMT-03:00 Luis Freitas lfreita...@yahoo.com [oracle_br] < oracle_br@yahoogrupos.com.br>: > > > Mario, > > Você viu meu e-mail de ontem sobre o '' e SQL dinâmico? > >Se estiver fazendo tudo certo mesmo, pode ser um bug, mas acho difícil. > >Veja se tem índice nas colunas das duas tabelas, e confirme o tipo de > dados em ambas e nas variáveis que está passando? O índice pode mudar o > plano de execução e estar expondo algum bug de resultado incorreto. > >O parâmetro cursor_sharing=FORCE está setado? Se estiver, altera ele no > nível de sessão e veja se muda o comportamento: > > alter session set CURSOR_SHARING=EXACT; > > Atc, > Luis Freitas > > > On Friday, June 9, 2017 11:26 AM, "'Emerson S. Gaudencio' > emerson.fen...@gmail.com [oracle_br]" > wrote: > > > > @Mario Rodrigues, > > Tente utilizar essa função aqui: > http://blog.gaudencio.net.br/2015/11/oracle-funcao-para- > remover-caracteres.html > > Essa função serve para remover caracteres especiais de string e deixar > somente letras e numero, assim atende sua lógica e não precisa ficar > pensando em utilizar replace. > > Att, > Emerson > > 2017-06-09 9:42 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com > [oracle_br] : > > > Pessoal, > > Serio ... pq este funciona > > SELECT nvl(round(VALOR,2),0) into v_custo > FROM TABELA1 > WHERE ITEM = replace(coditem,'-','') > ; > > e este não > SELECT nvl(round(VALOR,2),0) INTO v_preco_original > FROM > TABELA2 > WHERE CODIGO_ITEM = replace(coditem,'-','') > ; > > Tipo de dados do ITEM e CODIGO_ITEM são os mesmos. > > O que mais eu posso ver??? > > > > Em 9 de junho de 2017 09:15, Mario Rodrigues > escreveu: > > Bom Dia pessoal > > Pois eh ... ate criei uma funcão > > FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) >RETURN NUMBER >IS item NUMBER(20); >BEGIN >SELECT NOVOITEM > INTO item > from( > SELECT > SUBSTR(replace(p_coditem,'-',' '), 1, > LENGTH(replace(p_coditem,'-',' ')) - 1) NOVOITEM > FROM DUAL); > > RETURN(item); > END; > > preciso que o codigo 4506-3 retorne somente 4506 ... > > > nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro > select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 > .. > > > > > Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br > [oracle_br] escreveu: > > > Mario, > > Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar > de serem strings, se comportam de maneira diferente. > > Att. > > Marcelino > > > > > > > >
Re: [oracle_br] Como remover o traço
Mario, Você viu meu e-mail de ontem sobre o '' e SQL dinâmico? Se estiver fazendo tudo certo mesmo, pode ser um bug, mas acho difícil. Veja se tem índice nas colunas das duas tabelas, e confirme o tipo de dados em ambas e nas variáveis que está passando? O índice pode mudar o plano de execução e estar expondo algum bug de resultado incorreto. O parâmetro cursor_sharing=FORCE está setado? Se estiver, altera ele no nível de sessão e veja se muda o comportamento: alter session set CURSOR_SHARING=EXACT; Atc,Luis Freitas On Friday, June 9, 2017 11:26 AM, "'Emerson S. Gaudencio' emerson.fen...@gmail.com [oracle_br]" wrote: @Mario Rodrigues, Tente utilizar essa função aqui: http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-remover-caracteres.html Essa função serve para remover caracteres especiais de string e deixar somente letras e numero, assim atende sua lógica e não precisa ficar pensando em utilizar replace. Att,Emerson 2017-06-09 9:42 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com [oracle_br] : Pessoal, Serio ... pq este funciona SELECT nvl(round(VALOR,2),0) into v_custo FROM TABELA1 WHERE ITEM = replace(coditem,'-','') ; e este não SELECT nvl(round(VALOR,2),0) INTO v_preco_original FROM TABELA2 WHERE CODIGO_ITEM = replace(coditem,'-','') ; Tipo de dados do ITEM e CODIGO_ITEM são os mesmos. O que mais eu posso ver??? Em 9 de junho de 2017 09:15, Mario Rodrigues escreveu: Bom Dia pessoal Pois eh ... ate criei uma funcão FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) RETURN NUMBER IS item NUMBER(20); BEGIN SELECT NOVOITEM INTO item from( SELECT SUBSTR(replace(p_coditem,'-',' '), 1, LENGTH(replace(p_coditem,'-',' ')) - 1) NOVOITEM FROM DUAL); RETURN(item); END; preciso que o codigo 4506-3 retorne somente 4506 ... nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 .. Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br [oracle_br] escreveu: Mario, Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar de serem strings, se comportam de maneira diferente. Att. Marcelino #yiv3524427644 #yiv3524427644 -- #yiv3524427644ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv3524427644 #yiv3524427644ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv3524427644 #yiv3524427644ygrp-mkp #yiv3524427644hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv3524427644 #yiv3524427644ygrp-mkp #yiv3524427644ads {margin-bottom:10px;}#yiv3524427644 #yiv3524427644ygrp-mkp .yiv3524427644ad {padding:0 0;}#yiv3524427644 #yiv3524427644ygrp-mkp .yiv3524427644ad p {margin:0;}#yiv3524427644 #yiv3524427644ygrp-mkp .yiv3524427644ad a {color:#ff;text-decoration:none;}#yiv3524427644 #yiv3524427644ygrp-sponsor #yiv3524427644ygrp-lc {font-family:Arial;}#yiv3524427644 #yiv3524427644ygrp-sponsor #yiv3524427644ygrp-lc #yiv3524427644hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv3524427644 #yiv3524427644ygrp-sponsor #yiv3524427644ygrp-lc .yiv3524427644ad {margin-bottom:10px;padding:0 0;}#yiv3524427644 #yiv3524427644actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv3524427644 #yiv3524427644activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv3524427644 #yiv3524427644activity span {font-weight:700;}#yiv3524427644 #yiv3524427644activity span:first-child {text-transform:uppercase;}#yiv3524427644 #yiv3524427644activity span a {color:#5085b6;text-decoration:none;}#yiv3524427644 #yiv3524427644activity span span {color:#ff7900;}#yiv3524427644 #yiv3524427644activity span .yiv3524427644underline {text-decoration:underline;}#yiv3524427644 .yiv3524427644attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv3524427644 .yiv3524427644attach div a {text-decoration:none;}#yiv3524427644 .yiv3524427644attach img {border:none;padding-right:5px;}#yiv3524427644 .yiv3524427644attach label {display:block;margin-bottom:5px;}#yiv3524427644 .yiv3524427644attach label a {text-decoration:none;}#yiv3524427644 blockquote {margin:0 0 0 4px;}#yiv3524427644 .yiv3524427644bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv3524427644 .yiv3524427644bold a {text-decoration:none;}#yiv3524427644 dd.yiv3524427644last p a {font-family:Verdana;font-weight:700;}#yiv3524427644 dd.yiv3524427644last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv3524427644 dd.yiv3524427644last p span.yiv3524427644yshortcuts {margin-right:0;}#yiv3524427644 div.yiv3524427644attach-table div div a {text-decoration:none;}#yi
RES: [oracle_br] Como remover o traço
Uso a combinação de translate e replace abaixo: replace(trim(translate( c_text ,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ!&<>\' || chr( 9) || chr( 10) || chr( 13) || chr( 34) || chr( 39) ,'AACNOYaaconoyy e ' || chr(182) || chr(182) || chr(182) || chr(182) || chr(182) ) ),chr(182),null ); Abraço Sérgio Pennacchiotti De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Enviada em: Friday, June 09, 2017 11:27 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Como remover o traço @Mario Rodrigues, Tente utilizar essa função aqui: http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-remover-caracteres.html Essa função serve para remover caracteres especiais de string e deixar somente letras e numero, assim atende sua lógica e não precisa ficar pensando em utilizar replace. Att, Emerson 2017-06-09 9:42 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com <mailto:marioirodrig...@gmail.com> [oracle_br] mailto:oracle_br@yahoogrupos.com.br> >: Pessoal, Serio ... pq este funciona SELECT nvl(round(VALOR,2),0) into v_custo FROM TABELA1 WHERE ITEM = replace(coditem,'-','') ; e este não SELECT nvl(round(VALOR,2),0) INTO v_preco_original FROM TABELA2 WHERE CODIGO_ITEM = replace(coditem,'-','') ; Tipo de dados do ITEM e CODIGO_ITEM são os mesmos. O que mais eu posso ver??? Em 9 de junho de 2017 09:15, Mario Rodrigues mailto:marioirodrig...@gmail.com> > escreveu: Bom Dia pessoal Pois eh ... ate criei uma funcão FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) RETURN NUMBER IS item NUMBER(20); BEGIN SELECT NOVOITEM INTO item from( SELECT SUBSTR(replace(p_coditem,'-',''), 1, LENGTH(replace(p_coditem,'-','')) - 1) NOVOITEM FROM DUAL); RETURN(item); END; preciso que o codigo 4506-3 retorne somente 4506 .. nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 .. Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br <mailto:supo...@linguagem.com.br> [oracle_br] mailto:oracle_br@yahoogrupos.com.br> > escreveu: Mario, Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar de serem strings, se comportam de maneira diferente. Att. Marcelino [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Como remover o traço
@Mario Rodrigues, Tente utilizar essa função aqui: http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-remover-caracteres.html Essa função serve para remover caracteres especiais de string e deixar somente letras e numero, assim atende sua lógica e não precisa ficar pensando em utilizar replace. Att, Emerson 2017-06-09 9:42 GMT-03:00 Mario Rodrigues marioirodrig...@gmail.com [oracle_br] : > > > Pessoal, > > Serio ... pq este funciona > > SELECT nvl(round(VALOR,2),0) into v_custo > FROM TABELA1 > WHERE ITEM = replace(coditem,'-','') > ; > > e este não > SELECT nvl(round(VALOR,2),0) INTO v_preco_original > FROM > TABELA2 > WHERE CODIGO_ITEM = replace(coditem,'-','') > ; > > Tipo de dados do ITEM e CODIGO_ITEM são os mesmos. > > O que mais eu posso ver??? > > > > Em 9 de junho de 2017 09:15, Mario Rodrigues > escreveu: > >> Bom Dia pessoal >> >> Pois eh ... ate criei uma funcão >> >> FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) >>RETURN NUMBER >>IS item NUMBER(20); >>BEGIN >>SELECT NOVOITEM >> INTO item >> from( >> SELECT >> SUBSTR(replace(p_coditem,'-',''), 1, >> LENGTH(replace(p_coditem,'-','')) - 1) NOVOITEM >> FROM DUAL); >> >> RETURN(item); >> END; >> >> preciso que o codigo 4506-3 retorne somente 4506 ... >> >> >> nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro >> select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 >> .. >> >> >> >> >> Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br >> [oracle_br] escreveu: >> >>> >>> >>> Mario, >>> >>> >>> >>> Verifica o tipo de dado que você esta usando se é char ou varchar2 >>> apesar de serem strings, se comportam de maneira diferente. >>> >>> >>> >>> Att. >>> >>> >>> >>> Marcelino >>> >>> >> > >
Re: [oracle_br] Como remover o traço
Pessoal, Serio ... pq este funciona SELECT nvl(round(VALOR,2),0) into v_custo FROM TABELA1 WHERE ITEM = replace(coditem,'-','') ; e este não SELECT nvl(round(VALOR,2),0) INTO v_preco_original FROM TABELA2 WHERE CODIGO_ITEM = replace(coditem,'-','') ; Tipo de dados do ITEM e CODIGO_ITEM são os mesmos. O que mais eu posso ver??? Em 9 de junho de 2017 09:15, Mario Rodrigues escreveu: > Bom Dia pessoal > > Pois eh ... ate criei uma funcão > > FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) >RETURN NUMBER >IS item NUMBER(20); >BEGIN >SELECT NOVOITEM > INTO item > from( > SELECT > SUBSTR(replace(p_coditem,'-',''), 1, > LENGTH(replace(p_coditem,'-','')) - 1) NOVOITEM > FROM DUAL); > > RETURN(item); > END; > > preciso que o codigo 4506-3 retorne somente 4506 ... > > > nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro > select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 > .. > > > > > Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br > [oracle_br] escreveu: > >> >> >> Mario, >> >> >> >> Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar >> de serem strings, se comportam de maneira diferente. >> >> >> >> Att. >> >> >> >> Marcelino >> >> >> > >
Re: [oracle_br] Como remover o traço
Bom Dia pessoal Pois eh ... ate criei uma funcão FUNCTION CONVERTCODITEM(p_coditem in VARCHAR2) RETURN NUMBER IS item NUMBER(20); BEGIN SELECT NOVOITEM INTO item from( SELECT SUBSTR(replace(p_coditem,'-',''), 1, LENGTH(replace(p_coditem,'-','')) - 1) NOVOITEM FROM DUAL); RETURN(item); END; preciso que o codigo 4506-3 retorne somente 4506 ... nao sei mesmo o motivo disso estar acontecendo, pois como falei em outro select em outra funcao funciona perfeitamente .. o tipo de dados é VARCHAR2 .. Em 9 de junho de 2017 00:14, 'Marcelino Mota' supo...@linguagem.com.br [oracle_br] escreveu: > > > Mario, > > > > Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar > de serem strings, se comportam de maneira diferente. > > > > Att. > > > > Marcelino > > >
[oracle_br] Como remover o traço
Mario, Verifica o tipo de dado que você esta usando se é char ou varchar2 apesar de serem strings, se comportam de maneira diferente. Att. Marcelino
[oracle_br] Como remover o traço
Pessoal, Boa Tarde Como faço para isso SELECT replace(4506-3,'-','') FROM DUAL Funcionar?? dessa forma ai ele me retorna 4503 ...