このSQL文を使用してaisle from table itemloc_tmp
をSQLPLUS内のaisle from table itemloc_tbl
から更新し、トピックのようにエラーを戻し続けます。SQLエラーの更新ORA-01427:単一行サブクエリが複数の行を戻します
更新:itemloc_tmp
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA AA3 12
0007BBBBBBBBB BB2 13
0007CCCCCCCCC CC8 11
これはから これはサンプルデータは、これは私のSQL文
UPDATE ct.itemloc_tbl t1 SET
t1.aisle = (SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
WHERE t1.item_id IN (SELECT t2.item_id FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id)
そうですitemloc_tbl
ITEM_ID SID SEC AIS
------------- --- --- ---
0007AAAAAAAAA
0007BBBBBBBBB
0007CCCCCCCCC
からのサンプルである、私がしたいです更新aisle
列nはitemloc_tmp
からitemloc_tbl
までですが、上記の文は機能しません。誰かが私が間違っていた箇所を指摘するだろうか?
あなたのサブクエリは複数の結果を返しています(エラーが示すように) - 'aisle'カラムを更新するのにどの値を使うべきですか?サンプルデータと期待される結果が参考になります。 – sgeddes
エラーのように: 'SELECT t2.aisle FROM ct.itemloc_tmp t2 WHERE t2.item_id = t1.item_id'は複数の行を返します。 item_idの値は一意ではないと思いますか?それは普通ですか? – sstan
ええ、 'item_id'と' aisle'は一意ではありません。そして、私は '通路を更新する方法を見つけようとしています。 sqlplusはjoin関数を持っていないらしいので、 – Alexander