- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PL/SQLの質問)
PL/SQLの質問
このQ&Aのポイント
- テーブル「試験項目マスタ」と「クラスマスタ」があり、試験項目マスタの登録IDとクラスマスタの登録IDが同じ場合、2A列以降に丸印を付けたいです。
- PL/SQL(ストアドプロシージャ)を使用して、「試験項目マスタ」と「クラスマスタ」のデータを結合し、条件に合致した箇所に丸印を付ける方法を教えてください。
- お手数ですが、PL/SQLを使用して「試験項目マスタ」と「クラスマスタ」のデータを結合し、2A列以降に丸印を付ける方法を教えてください。
- みんなの回答 (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毎に実行したい気もしますが、とりあえずイメージだけでも。
お礼
ありがとうございます。 大変参考になりました。