falta de erro de palavra-chave na instrução oracle CASE WHEN sql
Estou escrevendo um procedimento no qual eu tenho a instrução sql que irá inserir valores emTEMP_WF_WORKFLOW
tabela usandoCASE WHEN
declaração. A condição é quandoSTATUS_ID
é0
então oEVENT_ID=10003
e quandoSTATUS_ID
é1
entãoEVETN_ID=10018
. Quando tento usarCASE WHEN
Para isso, está me dando erro, faltando a palavra-chave. Não sei, mas existe outra maneira de fazer isso se não estiver usandoCASE WHEN
declaração. Estou pensando em usarcursor
mas não sei como fazer isso.
Aqui está a minha consulta:
CREATE OR REPLACE PROCEDURE ext_self_10003_sigwf AS BEGIN
-- first empty TEMP_WF_WORKFLOW table
EXECUTE IMMEDIATE 'TRUNCATE TABLE TEMP_WF_WORKFLOW';
-- get WF_WORKFLOW table data
INSERT INTO temp_wf_workflow (status_id, event_id, order_number)
SELECT
wf.status_id,
CASE WHEN wf.status_id = 0 THEN event_id = 10003
WHEN wf.status_id = 1 THEN event_id = 10018 END AS eventid,
tsm.order_number
FROM wf_workflow@fonic_retail wf
JOIN tmp_soap_monitoring_ids tsm ON tsm.subscription_id = wf.subscription_id
WHERE tsm.order_type = 'SELF_REGISTRATION' AND wf.name = 'SIGNUP_MOBILE_PRE_PAID';
COMMIT;
END ext_self_10003_sigwf;