SQLJインストールと設定をテストし、簡単なアプリケーションを実行します。この章では、次の項目について説明します。設定のテスト前提と要件ここでは、SQLJを実行するための環境の前提とシステム要件を、次の項目に従って説明します。SQLJ実装を実行するシステムでは、次の内容を前提とします。使用しているシステム上で実行できる標準Java環境があること。Kit(JDK)を使用しますが、他のJava環境も使用できます。Java(通常はjava)とJavaコンパイラ(通常はjavac)を実行できることを確認してください。1.6.xを使用する必要があります。SQLJと同じバージョンのJDBCドライバ(ThinドライバまたはOCI8ドライバ)を使用する必要があります。インストールされるものも含めて、単独ではSQLJプログラムを変換できません。JREは、すでに変換されコンパイルされているSQLJプログラムの実行であれば実行できます。使用している環境で、JDBCアプリケーションを実行できること。JDBC開発者ガイドおよびリファレンス』を参照してください。SQLJ実装を使用するには、次のものが必要です。JDBCドライバを使用してアクセスできるデータベース・システムSQLJトランスレータ用クラス・ファイルトランスレータ関連クラスは、次のファイル内で使用可能です。ORACLE_HOME/sqlj/lib/translator.jar注意:translator.jarの詳細は、「PATHとCLASSPATHの設定」を参照してください。リリース1(11.1)では、runtime12ee.jarは廃止されました。かわりに、runtime12.jarを使用してください。完全な動作環境を確保するために、環境を様々な角度から(SQLJとそのコード生成モード、JDBCおよびJDKなど)考慮する必要があります。注意:コード生成は、SQLJの-codegenオプションによって決まります。詳細は、「コードの生成(-codegen)」を参照してください。Oracle固有コード生成の一般的な環境設定を次に示します。1.5.xまたは1.6.x注意:異なるバージョンのJDBCに対して実行する場合は、古い方のバージョンに対して変換します。環境に関する考慮事項アプリケーションは、コードを変換したバージョン以上のバージョンのJDKに対して実行できます。注意:translator.jarの詳細は、「PATHとCLASSPATHの設定」を参照してください。SQLJ実装の下位互換性に関して、次の点に注意する必要があります。現行より前のリリースのSQLJトランスレータで生成されたコードは、引き続き、現行のランタイム・ライブラリに対して実行およびコンパイルできます。「環境に関する考慮事項」で説明した相互の互換性の制限事項が適用されます。Oracle固有のトランスレータ出力(デフォルトの-codegen=oracle設定で生成されたコード)は、runtime12.jarライブラリを使用して、作成および実行する必要があります。次のことに注意してください。JDBCおよびSQLJ実装で実行できるようになる予定です。SQLJランタイムの以前のリリースでは実行できなくなります。この状況では、コードを再変換する必要があります。前述の前提と要件が満たされていることを確認した後、SQLJインストールを確認します。次の操作を実行する必要があります。SQLJおよびデモ用アプリケーションの可用性の確認インストール先のディレクトリとファイルの確認PATHとCLASSPATHの設定sqljutlパッケージのインストールの確認SQLJおよびデモ用アプリケーションを利用できるかどうかの確認SQLJおよびデモ用アプリケーションの可用性に関するリリース固有の注意事項を次に示します。Network(OTN)の次の場所で入手できます。場合、インストール時にSQLJおよびデモ・アプリケーションがインストールされます。次のディレクトリがインストールされ、その中にファイルが格納されていることを確認します。JDBC開発者ガイドおよびリファレンス』を参照してください。ディレクトリの下に作成されます。sqljディレクトリには次のサブディレクトリがあります。demo(この章で説明するものを含むデモ用アプリケーション)lib(SQLJのクラス・ファイルを含む.jarファイル)これらのディレクトリがすべて作成され、ファイルが格納されたことを確認してください。libは重要なディレクトリです。ORACLE_HOME/binディレクトリには、SQLJおよびJPublisher実行可能ファイルを含む、すべてのJava製品で使用できるユーティリティが格納されています。SQLJ実装用に設定されていることを確認します。SQLJ実装の環境変数PATHとCLASSPATHは、次のように設定します。絶対パスを指定せずにsqljスクリプト(SQLJトランスレータを起動するスクリプト)を実行する場合には、環境変数PATHに次のディレクトリが指定してあることを確認してください。Windowsでは円記号(\)を使用します。実際のOracleホーム・ディレクトリを指定します。環境変数CLASSPATHを変更して、カレント・ディレクトリと次の設定を指定します。Windowsでは円記号(\)を使用します。実際のOracleホーム・ディレクトリを指定します。CLASSPATHに、次のランタイム・ライブラリを指定します。JARを含める必要があります。1.5.x環境で変換または実行するには、CLASSPATHにojdbc5.jarを指定する必要があります。1.6.x環境で変換または実行するには、ojdbc6.jarを指定する必要があります。JARが使用されていることを確認します。注意:ランタイム・ライブラリを追加しない場合は、SQLJトランスレータを実行できません。CLASSPATHにランタイム・ライブラリとトランスレータ・ライブラリを指定する必要があります。SQLJが適切にインストールされていることと、SQLJ、JDBCおよびJavaのバージョン情報を確認するには、次のコマンドを実行します。Databaseインスタンスのストアド・プロシージャとストアド・ファンクションのオンライン・チェックを行うために使用します。Machine(JVM)のインストール中に、SYSスキーマの下に自動的にインストールされます。Java対応でないデータベースを使用している場合は、このパッケージを手動でインストールする必要があります。sqljutlのインストールを確認するには、SQL*Plusから次のSQLコマンドを実行します。sys.sqljutlこのコマンドを実行すると、パッケージの簡単な説明が出力されます。データベースの場合はsqljutl8.sql)を実行します。ORACLE_HOME/sqlj/lib/sqljutl.sql設定のテストデータベース、JDBCおよびSQLJセットアップをテストするには、次のソース・ファイルに定義されたデモ用アプリケーションを使用します。TestInstallCreateTable.javaTestInstallJDBC.javaTestInstallSQLJ.sqljTestInstallSQLJChecker.sqljまた、Javaプロパティ・ファイルであるconnect.propertiesも提供されています。このファイルは、データベース接続の設定に使用します。このファイルを変更し、使用するユーザー名、パスワードおよびURLを指定します。この項で説明するデモ用アプリケーションは、SQLJインストールによりdemoディレクトリ中に格納されます。ORACLE_HOME/sqlj/demo必要に応じて一部のソース・ファイルを変更し、変換やコンパイルを行う必要がある場合があります。Databaseアカウントで表を参照します。Database環境で使用されています。必要に応じて、scottとtigerに別の値を使用します。注意:デモ用アプリケーションを実行するには、demoディレクトリをカレント・ディレクトリにし、このカレント・ディレクトリ(「.」)をCLASSPATHで指定する必要があります。ここでは、次の項目について説明します。参照:「SQLJおよびデモ用アプリケーションの可用性の確認」ランタイム接続の設定ここでは、connect.propertiesファイルを変更し、Oracleにランタイム接続を設定します。このファイルはdemoディレクトリにあり、次のように記述されています。JDBC実装では、SIDを使用したデータベースURL接続文字列は廃止されています。次に例を示します(orclがSID)。jdbc:oracle:thin:@localhost:1521:orcl警告が生成されますが、致命的なエラーではありません。かわりに、次の例のようにmyserviceなどのデータベース・サービス名を使用することをお薦めします。JDBC開発者ガイドおよびリファレンス』を参照してください。OCIドライバでは、接続文字列にociを使用します。下位互換性のために、oci8も使用できます。したがって、既存のコードを変更する必要はありません。URL行のコメントアウトを解除し、Oracle接続に合わせて変更します。URLは、JDBCドライバの設定時に指定したURLを使用してください。データベース検証用の表の作成ここでのテストでは、SALESという表を使用します。次のようにTestInstallCreateTableをコンパイルおよび実行します。TestInstallCreateTableデータベースおよびJDBCドライバが動作しており、connect.propertiesファイル内の接続設定が適切である場合、表が作成されます。注意:SALES表がスキーマにすでにあり、それを変更しない場合は、TestInstallCreateTable.javaを編集して表の名前を変更します。元の表を削除して、新しい表に置き換えます。TestInstallCreateTableを使用しない場合は、次のSQL文を使用してSALES表を作成できます。JDBCドライバをさらに詳しく調べる場合は、TestInstallJDBCデモを使用します。接続がconnect.propertiesファイルに正しく設定されていることを確認します。その後、次のようにTestInstallJDBCをコンパイルして実行します。TestInstallJDBC次のように出力されます。JDBC!SQLJトランスレータとランタイムの検証TestInstallSQLJデモを変換して実行します。このデモは、TestInstallJDBCと同じような機能を持つSQLJアプリケーションです。次のコマンドを実行して、ソース・コードを変換します。TestInstallSQLJ.sqljこのコマンドではアプリケーションのコンパイルも行われることに注意してください。UNIX環境では、sqljスクリプトはORACLE_HOME/binにあります。このディレクトリをPATHで指定しておく必要があります。Windowsでは、binディレクトリのsqlj.exe実行可能ファイルを使用します。translator.jarファイルには、SQLJトランスレータおよびランタイム用のクラス・ファイルがあります。このファイルはORACLE_HOME/sqlj/libにあり、CLASSPATHに存在する必要があります。次のコマンドを実行して、アプリケーションを実行します。TestInstallSQLJ次のように出力されます。SQLJ!SQLJトランスレータからデータベースへの接続の検証SQLJトランスレータをデータベースに接続できる場合、変換時にSQL操作のオンラインのセマンティクス・チェックを実行できます。SQLJトランスレータはJavaで記述されており、JDBCを使用して必要な情報を指定されたデータベース接続から取得します。オンラインのセマンティクス・チェックの接続パラメータを指定するには、sqljスクリプト・コマンドラインまたはSQLJプロパティ・ファイル(デフォルトでは、sqlj.properties)を使用します。demoディレクトリで、sqlj.propertiesファイルを編集し、必要に応じてsqlj.password行、sqlj.url行およびsqlj.driver行に対して更新、コメントアウトまたはコメントアウトの解除を行い、データベース接続情報に反映します。詳細は、sqlj.propertiesファイルのコメントを参照してください。OCIドライバを使用する場合の、ドライバ、URLおよびパスワードの設定例を次に示します。sqlj.url=jdbc:oracle:oci:@sqlj.driver=oracle.jdbc.OracleDriversqlj.password=tigerオンラインのセマンティクス・チェックは、変換時の接続に対してユーザー名を指定した時点で有効になります。ユーザー名を指定するには、sqlj.propertiesファイルのsqlj.user行のコメントアウトを解除するか、-userコマンドライン・オプションを使用します。user、password、urlおよびdriverオプションは、コマンドラインまたはプロパティ・ファイルで設定できます。参照:「接続オプション」オンラインのセマンティクス・チェックをテストするには、次のようにTestInstallSQLJChecker.sqljファイル(demoディレクトリ)を変換します。(または、別のユーザー名を使用してテストする方法もあります。JDBCドライバを使用している場合は、次のエラー・メッセージが表示されます。nameTestInstallSQLJChecker.sqljを編集し、41行目で検出されたエラーを修正します。列名には、ITEM_NAMAEではなく、ITEM_NAMEを使用します。このように列名を変更すると、エラーが発生しなくなります。次のコマンドでアプリケーションを変換して実行します。TestInstallSQLJChecker正常に処理されると、次の行が表示されます。