2016-08-24 3 views
0
MERGE INTO XXD_BORROW_REPAYMENT BR 
USING XXD_BORROW B ON (B.BORROWID=BR.BORROWID AND B.type!=13) 
WHEN MATCHED THEN 
UPDATE SET BR.TOTALTERM=B.TIMELIMIT 


MERGE INTO XXD_BORROW_REPAYMENT BR 
USING XXD_BORROW B ON (B.BORROWID=BR.BORROWID AND B.type==13) 
WHEN MATCHED THEN 
UPDATE SET BR.TOTALTERM=1 

なぜ最初のsqlが正しいか、2番目のsqlが間違っているか、oracle merge not setが定数を設定していますか?oracle merge updateはサポートされていない定数を設定していますか?

+3

はおそらく、Oracleは、 '=='サポートしていません。 1つの等号のみが比較に使用されます。 –

+1

また、エラーを転記する必要があります。 B.ty​​pe == 13 - >等号記号を1つだけ使用する;) –

答えて

1

ステートメント "B.type == 13"から、B.typeと "13"の比較を実装したかったようです。残念ながら、oracle plsqlは "=="をサポートしていません。比較のために単一の "="を使用する必要があります。同じものの概念証明の下を見てください。

declare 
var varchar(10):= '13'; 
begin 

    if var == '13' then 
    dbms_output.put_line('Hi'); 
end if; 

end; 

この単純なブロックはエラーをthorwing終わる: "記号が発生しました " - " 期待したときに..."

関連する問題