Problema com Procedure pl-sql com duas condições no

SQL

Banco de Dados

Oracle PL SQL

19/04/2019

Olá gostaria de tirar uma dúvida tenho um procedimento para extrair informações de um arquivo, acontece o seguinte:

Nesse trecho do procedimento dá tudo certo, tem somente uma condição onde onde variavel v_txt01 for = 'texto' ele efetua a leitura e gravação
ELSIF v_txt01 = 'texto' THEN

v_sep_03 := INSTR(v_line, '|' ,1 , 3);
v_sep_04 := INSTR(v_line, '|' ,1 , 4);

v_txt03 := SUBSTR(v_line, v_sep_03+1, v_sep_04-v_sep_03-1);
v_txt04 := SUBSTR(v_line, v_sep_04+1, v_sep_05-v_sep_04-1);

INSERT INTO tbl_teste VALUES (v_txt03, v_txt04,);
v_commit := v_commit + 1;

Porém quando preciso incluir uma nova condição essa não grava nenhuma informação ou seja mesmo que a variavel v_txt_05 for = '30092018'
ELSIF v_txt01 = 'texto' AND v_txt05 = '30092018' THEN

v_sep_03 := INSTR(v_line, '|' ,1 , 3);
v_sep_04 := INSTR(v_line, '|' ,1 , 4);

v_txt03 := SUBSTR(v_line, v_sep_03+1, v_sep_04-v_sep_03-1);
v_txt04 := SUBSTR(v_line, v_sep_04+1, v_sep_05-v_sep_04-1);

INSERT INTO tbl_teste VALUES (v_txt03, v_txt04,);
v_commit := v_commit + 1;


todas as variáveis são caracteres
Alguém tem ideia do que pode ser
Alex

Alex

Curtidas 0

Respostas

Jesus Lima

Jesus Lima

19/04/2019

Olá gostaria de tirar uma dúvida tenho um procedimento para extrair informações de um arquivo, acontece o seguinte:

Nesse trecho do procedimento dá tudo certo, tem somente uma condição onde onde variavel v_txt01 for = 'texto' ele efetua a leitura e gravação
ELSIF v_txt01 = 'texto' THEN

v_sep_03 := INSTR(v_line, '|' ,1 , 3);
v_sep_04 := INSTR(v_line, '|' ,1 , 4);

v_txt03 := SUBSTR(v_line, v_sep_03+1, v_sep_04-v_sep_03-1);
v_txt04 := SUBSTR(v_line, v_sep_04+1, v_sep_05-v_sep_04-1);

INSERT INTO tbl_teste VALUES (v_txt03, v_txt04,);
v_commit := v_commit + 1;

Porém quando preciso incluir uma nova condição essa não grava nenhuma informação ou seja mesmo que a variavel v_txt_05 for = '30092018'
ELSIF v_txt01 = 'texto' AND v_txt05 = '30092018' THEN

v_sep_03 := INSTR(v_line, '|' ,1 , 3);
v_sep_04 := INSTR(v_line, '|' ,1 , 4);

v_txt03 := SUBSTR(v_line, v_sep_03+1, v_sep_04-v_sep_03-1);
v_txt04 := SUBSTR(v_line, v_sep_04+1, v_sep_05-v_sep_04-1);

INSERT INTO tbl_teste VALUES (v_txt03, v_txt04,);
v_commit := v_commit + 1;


todas as variáveis são caracteres
Alguém tem ideia do que pode ser




Opa Alex tudo bem?

Você já tentou dessa forma ELSIF (v_txt01 = 'texto' AND v_txt05 = '30092018' ) THEN quando sua condição for composta de AND?
GOSTEI 0
POSTAR