SSブログ

別テーブルの値で対象テーブルの値を更新 [Oracle]

テーブルの値を更新する際に、別のテーブルからもってくる。oracleでやってみました。


TABLE_A
KEY_A number(10,0)
KEY_B number(10,0)
COL1 varchar2(10)

TABLE_B
KEY_B number(10,0)
COL1 varchar2(10)

TABLE_AのCOL1にTABLE_BのCOL1の値をセットする。


【誤ったやりかた】
update TABLE_A a
set COL1 = (select b.COL1 from TABLE_A a,TABLE_B b where a.KEY_B=b.KEY_B);

こんなエラーが発生
SQLエラー: ORA-01427: 単一行副問合せにより2つ以上の行が戻されます
01427. 00000 -  "single-row subquery returns more than one row"


副問合せ内のfromに更新対象テーブルを記載してはダメ!
【正しいやり方】
update TABLE_A a
set COL1 = (select b.COL1 from TABLE_B b where a.KEY_B=b.KEY_B);

 

これで解決しました。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

ドメインの種類glassfish 起動エラー ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。