• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PL/SQLの質問)

PL/SQLの質問

このQ&Aのポイント
  • テーブル「試験項目マスタ」と「クラスマスタ」があり、試験項目マスタの登録IDとクラスマスタの登録IDが同じ場合、2A列以降に丸印を付けたいです。
  • PL/SQL(ストアドプロシージャ)を使用して、「試験項目マスタ」と「クラスマスタ」のデータを結合し、条件に合致した箇所に丸印を付ける方法を教えてください。
  • お手数ですが、PL/SQLを使用して「試験項目マスタ」と「クラスマスタ」のデータを結合し、2A列以降に丸印を付ける方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

クラスマスタの登録IDクラスが試験項目マスタの登録ID(4桁)+試験項目マスタの更新カラム名(2桁)である前提で、 declare  cursor c1 is  select 試験項目マスタ.登録ID     ,substr(クラスマスタ.登録IDクラス,5,2) 更新カラム  from 試験項目マスタ   inner join クラスマスタ   on 試験項目マスタ.登録ID = substr(クラスマスタ.登録IDクラス,1,4)  order by 試験項目マスタ.登録ID  ;    w_sql varchar2(4000); begin  for r1 in c1 loop   w_sql := 'update 試験項目マスタ ';   w_sql := w_sql := 'set ' || r1.更新カラム ||' = ''○''';   w_sql := w_sql := 'where 試験項目マスタ.登録ID = ' || r1.登録ID;   execute immediate w_sql;  end loop;  commit; end; / とかでどうですか? update文を登録ID毎に実行したい気もしますが、とりあえずイメージだけでも。

miruchoko
質問者

お礼

ありがとうございます。 大変参考になりました。

関連するQ&A