Meu caro, o problema é que vc está confiando em conversão implícita : quando vc
passa um número (uma expressão numérica, na verdade) pra uma função caracter, o
banco é ** TOTALMENTE LIVRE ** para OU primeiro resolver a expressão (aí o
4506-3 passa a ser uma CONTA, que vai ser resolvida antes) ,
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
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
Uso a combinação de translate e replace abaixo:
replace(trim(translate( c_text
,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ!&<>\' || chr( 9) ||
chr( 10) || chr( 13) || chr( 34) || chr( 39)
@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
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
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)