システム開発ブログ/ システムソリューション部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

【PL/SQL】レコードの使用方法について

青木
青木 (2009年12月21日 13:39)
システムソリューション部

久しぶりにPL/SQLでの開発をしていますが、
その都度レコードの使用方法を忘れてしまうので、備忘録です。

ファンクションやプロシージャにカーソルを渡したいときに利用すると、
コードの可読性がアップします。

以下がサンプルです。
バインド変数を利用した動的SQLを使用しています。

CREATE OR REPLACE PACKAGE BODY TEST
IS
  --// これがレコードの宣言です
  TYPE TYP_RECORD IS RECORD
     ( SHAIN_CODE M_SHAIN.SHAIN_CODE%TYPE
     , SHAIN_NAME M_SHAIN.SHAIN_NAME%TYPE
     );
 
  --// ワークテーブルへ登録します
  --// パラメータにレコードを使用しています
  PROCEDURE INSERT_WORKTABLE(
    ONE_RECORD IN TYP_RECORD
  )
  IS
    C_SQL VARCHAR2(1000);
  BEGIN
    C_SQL := 'INSERT INTO SHAIN_WORK VALUES (:1, :2)';
    EXECUTE IMMEDIATE C_SQL USING ONE_RECORD.SHAIN_CODE
                                , ONE_RECORD.SHAIN_NAME;
  END INSERT_WORKTABLE;
 
  --// メイン処理
  PROCEDURE MAIN()
  IS
    TYPE TYP_CURSOR IS REF CURSOR;
    CURSOR_SET  TYP_CURSOR;
    ONE_RECORD  TYP_RECORD;
    C_SQL       VARCHAR2(1000);
  BEGIN
    C_SQL :=          'SELECT SHAIN_CODE';
    C_SQL := C_SQL || '     , SHAIN_NAME';
    C_SQL := C_SQL || '  FROM M_SHAIN';
    C_SQL := C_SQL || ' WHERE BUSHO_CODE = :1';
    OPEN CURSOR_SET FOR C_SQL USING '9999';
    LOOP
      FETCH CURSOR_SET INTO ONE_RECORD;
      EXIT WHEN CURSOR_SET%NOTFOUND;
      INSERT_WORKTABLE(ONE_RECORD);
    END LOOP;
    CLOSE CURSOR_SET;
    COMMIT;
  EXCEPTION
    WHEN OTHERS THEN
      ROLLBACK;
  END MAIN;
END TEST;
/

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。