日本語PDF

7 SQL*LoaderおよびPL/SQLのデモ

この章では、Oracle Databaseとともに使用できるSQL*LoaderとPL/SQLの各デモ・プログラムを作成および実行する方法について説明します。内容は次のとおりです。

ノート:

この章で説明するデモンストレーションを使用するには、Oracle Database 19c Examplesメディアに収録されているOracle Database Examplesをインストールする必要があります。デモンストレーションを作成する前に、JONESアカウントのロックを解除してパスワードを設定する必要があります。

7.1 SQL*Loaderのデモ

SQL*Loaderのデモを実行する場合は、ulcase.shファイルを実行します。デモを個別に実行する場合は、ファイル内に含まれている情報を読んで、実行方法を確認してください。

7.2 PL/SQLのデモ

PL/SQLには多数のデモ・プログラムが含まれています。これらのプログラムを使用する前に、データベース・オブジェクトを作成し、サンプル・データをロードする必要があります。オブジェクトを作成してサンプル・データをロードするには:

  1. ディレクトリをPL/SQLデモ・ディレクトリに変更します。

    $ cd $ORACLE_HOME/plsql/demo
    
  2. SQL*Plusを起動し、次のコマンドを入力します。

    $ sqlplus 
    SQL> CONNECT JONES
    Enter password: password
    
  3. 次のコマンドを実行し、オブジェクトを作成してサンプル・データをロードします。

    SQL> @exampbld.sql
    SQL> @examplod.sql
    

    ノート:

    デモは、十分な権限を持つOracleユーザーとして作成してください。デモは、作成時と同じOracleユーザーで実行してください。

PL/SQLカーネル・デモ

次のPL/SQLカーネル・デモは、ソフトウェアとともに使用できます。

  • examp1.sqlからexamp8.sql

  • examp11.sqlからexamp14.sql

  • sample1.sqlからsample4.sql

  • extproc.sql

PL/SQLカーネル・デモexampn.sqlまたはsamplen.sqlをコンパイルして実行するには:

  1. SQL*Plusを起動し、次のコマンドを入力します。

    $ cd $ORACLE_HOME/plsql/demo
    $ sqlplus 
    SQL> CONNECT JONES
    Enter password: password
    
  2. 次のようなコマンドを実行してデモを実行します。demo_nameはデモ名です。

    SQL> @demo_name
    

extproc.sqlデモを実行するには:

  1. 必要に応じて、次のように外部プロシージャのエントリをtnsnames.oraファイルに追加します。
    EXTPROC_CONNECTION_DATA =
       (DESCRIPTION =
           (ADDRESS_LIST = 
              (ADDRESS=(PROTOCOL = IPC)( KEY = EXTPROC))
           )
           (CONNECT_DATA = 
              (SID = PLSExtProc)
           )
        )
    
  2. 必要に応じて、次のように外部プロシージャのエントリをlistener.oraファイルに追加します。

    ノート:

    listener.oraファイルのSID_NAMEに指定する値と、tnsnames.oraファイルのSIDに指定する値は、一致している必要があります。

    • Oracle Solaris、LinuxおよびHP-UXの場合:

      SID_LIST_LISTENER = 
        (SID_LIST = 
           (SID_DESC=
              (SID_NAME=PLSExtProc)
              (ORACLE_HOME=oracle_home_path)
              (ENVS=EXTPROC_DLLS=oracle_home_path/plsql/demo/extproc.so,
                 LD_LIBRARY_PATH=oracle_home_path/plsql/demo)
              (PROGRAM=extproc)
            )
          )
      
    • IBM AIX on POWER Systems (64-Bit)の場合:

      SID_LIST_LISTENER = 
        (SID_LIST = 
           (SID_DESC=
              (SID_NAME=PLSExtProc)
              (ORACLE_HOME=oracle_home_path)
              (ENVS=EXTPROC_DLLS=oracle_home_path/plsql/demo/extproc.so,
                 LIBPATH=oracle_home_path/plsql/demo)
              (PROGRAM=extproc)
            )
          )
      
  3. ディレクトリを$ORACLE_HOME/plsql/demoに変更します。
  4. 次のコマンドを実行してextproc.so共有ライブラリを作成し、必要なデータベース・オブジェクトを構築してサンプル・データをロードします。
    $ make -f demo_plsql.mk extproc.so exampbld examplod
    

    データベース・オブジェクトが構築済でサンプル・データがロードされている場合は、次のコマンドを実行します。

    $ make -f demo_plsql.mk extproc.so
    
  5. SQL*Plusから、次のコマンドを実行します。
    SQL> CONNECT SYSTEM
    Enter password: system_password
    SQL> GRANT CREATE LIBRARY TO JONES;
    SQL> CONNECT JONES
    Enter password: password
    SQL> CREATE OR REPLACE LIBRARY demolib IS
      2  'oracle_home_path/plsql/demo/extproc.so';
      3  /
    

    ノート:

    CREATE LIBRARYは非常に高い権限です。この権限は、信頼できるユーザーにのみ付与する必要があります。

  6. デモを起動するには、次のコマンドを実行します。
    SQL> @extproc

例7-1 PL/SQLプリコンパイラ・デモ

ノート:

この項で示すmakeコマンドは、必要なデータベース・オブジェクトを作成し、サンプル・データをJONESスキーマにロードします。

次のプリコンパイラ・デモを利用できます。

  • examp9.pc

  • examp10.pc

  • sample5.pc

  • sample6.pc

PL/SQLプリコンパイラ・デモを作成するには、$ORACLE_HOME/libディレクトリを含むようにライブラリ・パス環境変数を設定し、次のコマンドを実行します。

$ cd $ORACLE_HOME/plsql/demo
$ make -f demo_plsql.mk demos

デモを1つのみ作成する場合は、makeコマンドにそのデモ名を引数として指定します。たとえば、examp9デモを作成するには、次のコマンドを実行します。

$ make -f demo_plsql.mk examp9

examp9デモを起動するには、次のコマンドを実行します。

$ ./examp9

7.3 64ビットOracle Database PL/SQLからの32ビット外部プロシージャのコール

ノート:

この項の内容は、64ビットOracle Databaseにのみ適用されます。

Oracle Database 11gリリース2 (11.2)から、extproc32は64ビットOracle Databaseインストールからは使用できません。したがって、32ビット外部プロシージャを64ビットOracle Databaseから実行する必要がある場合、使用するプラットフォームに対応する32ビット・クライアント・ソフトウェアをインストールして、32ビットextprocを取得する必要があります。特に、カスタム・インストールを32ビット・クライアント・インストールで選択してから、Oracle DatabaseユーティリティおよびOracleリスナーを選択する必要があります。

つまり、32ビットextprocを実行するためには、別のOracleホーム(32ビット)が必要です。実行可能ファイル名はextproc32ではなく、単にextprocです。

32ビット外部プロシージャを64ビットOracle Database環境で使用できるようにするには、32ビット・リスナーをextprocに構成し、Oracleホームを(32ビット・クライアント・インストールから)extproc listener.oraエントリに指定する必要があります。