0
UPDATE
  TABLE1 a,
  TABLE2 b
SET
  a.COL1 = 'VALUE'
WHERE
  a.FK = b.PK
  AND b.COL2 IN ('A subquery')

この更新ステートメントを使用していて、IN句のサブクエリが行を返さない場合、エラーが発生します。どうすればそれを回避できますか?(Oracle 10g)

4

3 に答える 3

0
UPDATE
  TABLE1 a
SET
  a.COL1 = 'VALUE'
WHERE
  a.FK IN (SELECT b.PK FROM b WHERE b.COL2 in ....)
于 2013-02-27T18:14:24.107 に答える
0

サブクエリの正確な詳細に応じて、これをEXISTSクエリに書き換えることができます。

UPDATE TABLE1 a, TABLE2 b SET a.COL1 = 'VALUE' 
WHERE a.FK = b.PK AND EXISTS (select 1 from OTHERTABLE O where B.COL2=O.COL2)
于 2013-02-27T18:14:25.183 に答える
0

サブクエリは引用符で囲まれていますか?

UPDATE
  TABLE1 a,
  TABLE2 b
SET
  a.COL1 = value
WHERE
  a.FK = b.PK
  AND b.COL2 IN (
                 SELECT col2
                 FROM ...
                 WHERE ...
                )
于 2013-02-27T18:25:29.347 に答える