0

別の select ステートメントから取得したデータをテーブルに入力したいテーブル内に列を作成しました。

これは、その1つの列にデータを入力するために使用しようとしているステートメントです:

update cc_file
set sd_file_name = (select c1.name sd_file_name
                    from cc_file f, cvs3 c1 
                    where f.sd_file_id = c1.file_id 
                     and (c1.file_id, c1.type) in (select file_id, 
                                                          max(type) 
                                                   from cvs3 
                                                   where type1='PP' 
                                                     and type2='XHMTML' 
                                                   group by file_id)

Oracleでこのステートメントを実行すると、このエラーが表示されますORA-01427: single-row subquery returns more than one row

誰かが私にこれを行う方法を教えてください。コラムが更新されます。

ありがとう

4

1 に答える 1

1

これを試して

update cc_file 
  set xml_file_name = (select c1.name sd_file_name
                         from cvs3 c
                         where f.sd_file_id = cc_file.file_id and 
                               (c.file_id, c.type) in (select file_id, max(type)
                                                         from cvs3
                                                         where type1='PP' and 
                                                               type2='XHMTML'
                                                         group by file_id ))
于 2012-07-12T10:15:38.763 に答える