2016-08-05 15 views
0

以下のselect文に基づいてテーブルの列を更新しようとしています。私が更新している列は結合条件ではなく、別の値です。他のテーブルの条件を使用したOracleの更新クエリ

SELECT * 
FROM TRANS DT, RECOVER RT 
WHERE DT.SERIAL_NUMBER =RT.SERIAL_NUMBER 
AND DT.DATE >= TO_DATE('07/14/2016','mm/dd/yyyy') 

私は以下を試してエラーが発生しました。いかなる援助も感謝します。 SUCCESS以来

UPDATE TRANS 
SET CODE = SUCCESS 
WHERE (SELECT * 
     FROM TRANS DT, RECOVER RT 
     WHERE DT.SERIAL_NUMBER = RT.SERIAL_NUMBER 
     AND DT.DATE >= TO_DATE('07/14/2016', 'mm/dd/yyyy') 
+0

エラーが何でありますか? – JT4U

+0

SUCCESSは 'RECOVER'または文字列ですか? – vercelli

+2

[古いスタイルのJOINを使って蹴るのが悪い](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - ANSI - ** 92 ** SQL標準(* ** 20年以上前**)のold * style *カンマ区切りのテーブル*スタイルのリストが*適切な* ANSI 'JOIN'構文に置き換えられましたその使用はお勧めしません –

答えて

1

文字列が存在するとしようとされています

UPDATE TRANS 
SET CODE = 'SUCCESS' 
WHERE exists (SELECT 1 
       FROM RECOVER RT 
       WHERE TRANS.SERIAL_NUMBER = RT.SERIAL_NUMBER 
       AND TRANS.DATE >= TO_DATE('07/14/2016','mm/dd/yyyy'); 
関連する問題