Boa Tarde a todos.
Estou com o seguinte cenário, tenho uma procedure que possui um cursor. No select deste cursor tenho Status diferentes de pedidos que posso utilizar.
O que gostaria de fazer é hora usar um conjunto de status e hora usar outro conjunto de status.
Para isso criei um parametro de entrada que recebe (0 ou 1), e criei uma condição IF que dependente do parametro atribui os status para uma variavel do tipo VARCHAR.
Após isso inicializo meu cursor utilizando esta variavel em uma clausula IN no Where do select.
Mas o select não retorna nenhuma linha, se passo os mesmo status na clausula IN de forma manual o select retorna várias linhas.
Segue exemplo do meu IF (estou usando tres aspas simples para que fique uma aspa na variavel):
IF pm_statuspedido = 0 THEN
v_statuspedido := ”’FALTA MERCADORIA”’ || ‘,’ || ”’SALDO”’;
ELSIF pm_statuspedido = 1 THEN
v_statuspedido := ”’PENDENTE”’ || ‘,’ || ”’TRANSPORTE”’;
END IF;
Segue exemplo do Where do select no cursor:
AND (PS.STATUS IN (v_statuspedido))
O que estou fazendo de errado para o select não conseguir interpretar na clausula IN minha variavel?
Obs: a variavel v_statuspedido é do tipo VARCHAR2(200)