2013-12-20 76 views
0
if v_test_id IS NOT NULL AND exists (select test_id from physicians where test_id =  v_test_id) then 
    select 'phys_id' = -1; 

elseif 
    if v_addl_language1 = '' THEN SELECT v_addl_language1 = NULL; 
    if v_addl_language2 = '' THEN SELECT v_addl_language2 = NULL; 
    if v_addl_language3 = '' THEN SELECT v_addl_language3 = NULL; 

錯誤是發生在如果v_addl_language1 ...意外IDENT_QUOTED,預計(在嵌套的IF/ELSE IF語句

我極好的裝備與周圍的if語句的參數相加括注,但是那並不是」不像是會解決這個問題的任何想法

回答

0

你錯過END IF;?聲明爲每IF

的sintaxe是IF表達式THEN命令; ELSEIF anotherExpression然後命令; ELSE命令; END IF;

所以你的代碼在elseif部分應該是:

ELSEIF someexpression THEN 
    if v_addl_language1 = '' THEN SELECT v_addl_language1 = NULL; end if; 
    if v_addl_language2 = '' THEN SELECT v_addl_language2 = NULL; end if; 
    if v_addl_language3 = '' THEN SELECT v_addl_language3 = NULL; end if; 
END IF; 
+0

不,這並沒有這樣做。感謝您的幫助。 – user3123869

+0

我試着在ELSEIF之前的IF結尾添加一個,但那也沒有奏效 – user3123869

+0

不,我想你錯過了我。 sintaxe是'IF表達然後命令; ELSEIF anotherExpression THEN命令; ELSE命令;萬一; '如果你在elseif後面結束它,那意味着你在沒有表達式的情況下離開了elseif,並且在if之前沒有和IF。我會改變我的答案。 –