Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド 12c (12.2.1.2) E82763-01 |
|
前 |
次 |
JDBCプラガブル・データソース(PDS)を使用すると、次のような任意のJDBCデータソースにアクセスできます。
Oracle、DB2、Sybase、SQL ServerなどのRDBMS
Microsoft Excelなどの非リレーショナル・データ・ソース
JDBC-ODBC Bridgeを経由するODBCデータ・ソース
Oracle ReportsにはデフォルトでJDBC PDSがインストールされており、あらゆるJDBC対応データ・ソースへのアクセスが可能です。
この章には、次の項があります。
jdbcpds.conf
ファイルは、Oracle ReportsのJDBC PDS構成ファイルです。これは、次のディレクトリに格納されています。
Reports Serverの場合:
${DOMAIN_HOME}/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>/
Oracle Reports Builderの場合:
${DOMAIN_HOME}/config/fmwconfig/components/ReportsToolsComponent/<reports_tools_name>
Oracle WebLogic ServerにデプロイされたReportsアプリケーション(インプロセスReports Server)の場合:
DOMAIN_HOME
/config/fmwconfig/servers/WLS_REPORTS/applications/reports_
version
/configuration
このファイルは、次のドライバ用に事前構成されています。
プリインストール・ドライバ。すなわちOracle JDBC Thinドライバ、Oracle JDBC OCI (Thick)ドライバおよびJDBC-ODBCドライバ。
Oracle Technology Network(http://www.oracle.com/technetwork/index.html
)から入手可能なDataDirect Merantドライバ。
これ以外のJDBCドライバを使用する場合は、jdbcpds.conf
ファイル内で関連するエントリを追加または変更する必要があります。
Oracle Reports Builderでは、jdbcpds.conf
ファイルのエントリに基づいて、ドライバのリストをJDBC問合せ接続ダイアログに表示します。このリストで、レポートのJDBC問合せに使用するドライバを選択します。
Oracle Reports Builderでは、起動時にjdbcpds.conf
のエントリが読み取られ、キャッシュに格納されます。Oracle Reports Builderを再起動すると、jdbcpds.conf
ファイルに対する変更(たとえば、新しいJDBCドライバ・エントリの追加)の結果が表示されます。
jdbcpds.conf
ファイルには、次の2つのセクションがあります。
注意: このセクションで、ドライバ情報を変更または追加することができます。 |
例
jdbcpds.conf
ファイルの内容の例を次に示します。
<!-- Add or modify the following section for your driver information --> <!-- Following drivers are available out-of-box in OracleAS --> <jdbcpds> xmlns="http://xmlns.oracle.com/reports/pdsjdbc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/reports/pdsjdbc file:c:\orawin/reports/dtd/jdbcpds.xsd" > <driverInfo> <driver name = "oracleThin" sourceDatabase = "oracle" subProtocol = "oracle:thin" connectString = "mainProtocol:subProtocol:@databaseName" class= "oracle.jdbc.driver.OracleDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "oracle" sourceDatabase = "oracle" subProtocol = "oracle:oci8" connectString = "mainProtocol:subProtocol:@databaseName" class = "oracle.jdbc.driver.OracleDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "jdbc-odbc" sourceDatabase = "odbc" subProtocol = "odbc" connectString = "mainProtocol:subProtocol:databaseName" class = "sun.jdbc.odbc.JdbcOdbcDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "sqlserver-merant" sourceDatabase = "sqlserver" subProtocol = "merant:sqlserver" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sqlserver.SQLServerDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> <driver name = "sybase-merant" sourceDatabase = "sybase" subProtocol = "merant:sybase" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.sybase.SybaseDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver> <driver name = "db2-merant" sourceDatabase = "db2" subProtocol = "merant:db2" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.db2.DB2Driver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling" loginTimeout = "0"> </driver> <driver name = "informix-merant" sourceDatabase = "informix" subProtocol = "merant:informix" connectString = "mainProtocol:subProtocol://databaseName" class = "com.oracle.ias.jdbc.informix.InformixDriver" connection = "oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling"> </driver> </driverInfo> </jdbcpds>
表14-1では、ドライバに関連付けることのできる各種属性を説明しています。
表14-1 ドライバの属性
属性名 | 説明 | 例 |
---|---|---|
|
一意のユーザー定義値。Oracle Reportsで特定のJDBCドライバを参照するために使用されます。 |
|
ドライバが参照するデータベース。有効なエントリは、次のとおりです。
|
|
|
データベース接続の作成前にデータベースURLとともに追加されるドライバ・サブ・プロトコル。ドライバ固有の情報です。この情報については、各ドライバのドキュメントを参照してください。たとえば、Merantドライバへの接続に使用されるサブ・プロトコルは次のとおりです。 Sybaseの場合は、 SQL Serverの場合は、 |
|
|
ドライバの接続文字列の書式は |
|
|
|
|
|
ドライバの接続処理クラス。JDBC PDSはドライバごとに異なる接続処理クラスを持つことができます。Oracle Reportsのデフォルト接続処理クラスは JDBC Connectionクラスの拡張方法の詳細は、Oracle ReportsのJava APIリファレンスを参照してください。 |
|
|
ドライバ固有のパラメータ。秒単位で値を指定します。詳細は、ドライバのドキュメントを参照してください。 |
|
|
ドライバの追加プロパティを属性名と値で任意に指定します。 |
|
レポートの接続詳細を送信する際には、接続情報とjdbcpds.conf
ファイルで指定されているドライバ構成情報とが組み合せられます。この組み合せた接続情報が、完全な接続URLとしてデータベースに送信されます。接続情報の例の詳細は、表14-3、表14-4、表14-5、表14-6および表14-7を参照してください。
図14-0では、jdbcpds.conf
ファイルで構成されているすべてのドライバの一覧を示しています。
Oracle Reportsには、SQL ServerやExcelのJDBC-ODBCドライバ、Oracle JDBC Thinドライバ、Oracle JDBC OCI (Thick)ドライバなどがインストールおよび構成されています。次のドライバには、追加のJARファイルをインストールする必要がありません。
JDBC-ODBCドライバを使用すると、SQL ServerやExcelのデータが扱えます。このドライバのエントリは、jdbcpds.conf
ファイルに事前構成されています。SQL ServerやExcelのデータをJDBC-ODBCドライバで使用するには、ODBCデータ・ソースを作成する必要があります。ODBCデータ・ソースの作成方法の詳細は、Windowsヘルプを参照してください。
注意: Oracle Fusion Middlewareでは、SQL Serverへのアクセスにも使用できるMerant DataDirectドライバが用意されています。 |
オラクル社は、Merant DataDirectドライバ・セット(バージョン3.2)を提供しています。これは、OTN(http://www.oracle.com/technetwork/index.html
)からダウンロードできます。ドライバ構成ファイル(jdbcpds.conf
)には、Merant DataDirectドライバ関連のエントリがあります。さらに、JDBC接続ダイアログ(表14-1)には、オラクル社が提供するMerant DataDirectドライバ・セットのエントリが一覧表示されます。
ただし、適切なJARファイルをインストールし、それをOracle Reports BuilderやOracle Reports Servicesから使用できるようにOracle Reports固有のクラスパス・エントリで指定する必要があります。
オラクル社が提供するドライバでOracle Fusion MiddlewareやOracle Developer Suiteで使用可能なものは次のとおりです。
カスタム・ドライバも、Oracle Fusion MiddlewareやOracle Developer Suiteで使用するためにインストールして構成できます。
次に、Merant DataDirectドライバを構成する際の一般的な手順について説明します。個々のMerant DataDirectドライバを構成する手順については、それぞれ該当する項を参照してください。
Merant DataDirectドライバを構成する手順は次のとおりです。
適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
必要なJARファイルについては、この項の該当するドライバの記述を参照してください。
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。この項の該当するドライバの例を参照してください。
rwbuilder.conf: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。この項の該当するドライバの例を参照してください。
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。この項の該当するドライバの例を参照してください。
jdbcpds.conf
: ${DOMAIN_HOME}/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>/
ディレクトリ内にあります。パラメータの詳細は、表14-1を参照してください。この項の該当するドライバの例を参照してください。
適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
必要なJARファイルは、YMutil.jar
、YMsybase.jar
、YMbase.jar
です。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。
Example: D:\sybase_installed\YMutil.jar;D:\sybase_installed\YMsybase.jar;D:\sybase_ installed\YMbase.jar;existing classpath entries
rwbuilder.conf
: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sybase_ installed\YMutil.jar;D:\sybase_installed\YMsybase.jar;D:\sybase_ installed\YMbase.jar;"> ... </engine>
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sybase_ installed\YMutil.jar;D:\sybase_installed\YMsybase.jar;D:\sybase_ installed\YMbase.jar;"> ... </engine>
jdbcpds.conf
: ORACLE_INSTANCE\config\ReportsServerComponent\server_name
ディレクトリ内にあります。必須パラメータの詳細は、表14-1を参照してください。
Example:
<driver name = "sybase-merant"
sourceDatabase = "sybase"
subProtocol = "merant:sybase"
connectString = "mainProtocol:subProtocol://databaseName"
class = "com.oracle.ias.jdbc.sybase.SybaseDriver"
connection = "oracle.reports.plugin.datasource.jdbcpds.
JDBCConnectionHandling"
loginTimeout = "0">
</driver>
適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
必要なJARファイルは、YMutil.jar
、YMdb2.jar
、YMbase.jar
です。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。
Example: D:\db2_installed\YMutil.jar;D:\db2_installed\YMdb2.jar;D:\db2_ installed\YMbase.jar;existing classpath entries
rwbuilder.conf: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\db2_installed\YMutil.jar;D:\db2_ installed\YMdb2.jar;D:\db2_installed\YMbase.jar"> ... </engine>
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\db2_installed\YMutil.jar;D:\db2_ installed\YMdb2.jar;D:\db2_installed\YMbase.jar"> ... </engine>
jdbcpds.conf
: ORACLE_INSTANCE\config\ReportsServerComponent\server_name
ディレクトリ内にあります。パラメータの詳細は、表14-1を参照してください。
Example:
<driver name = "db2-merant"
sourceDatabase = "db2"
subProtocol = "merant:db2"
connectString = "mainProtocol:subProtocol://databaseName"
class = "com.oracle.ias.jdbc.db2.DB2Driver"
connection = "oracle.reports.plugin.datasource.jdbcpds.
JDBCConnectionHandling"
loginTimeout = "0">
</driver>
適切な.jar
ファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
必要なJARファイルは、YMutil.jar
、YMsqlserver.jar
、YMbase.jar
です。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。
Example: D:\sqlserver_installed\YMutil.jar;D:\sqlserver_ installed\YMsqlserver.jar;D:\sqlserver_installed\YMbase.jar;existing classpath entries
rwbuilder.conf: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sqlserver_ installed\YMutil.jar;D:\sqlserver_installed\YMsqlserver.jar;D:\sqlserver_ installed\YMbase.jar;"> ... </engine>
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\sqlserver_ installed\YMutil.jar;D:\sqlserver_installed\YMsqlserver.jar;D:\sqlserver_ installed\YMbase.jar;"> ... </engine>
jdbcpds.conf
: ${DOMAIN_HOME}/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>/
ディレクトリ内にあります。パラメータの詳細は、表14-1を参照してください。
Example:
<driver name = "sqlserver-merant"
sourceDatabase = "sqlserver"
subProtocol = "merant:sqlserver"
connectString = "mainProtocol:subProtocol://databaseName"
class = "com.oracle.ias.jdbc.sqlserver.SQLServerDriver"
connection = "oracle.reports.plugin.datasource.jdbcpds.
JDBCConnectionHandling">
</driver>
適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
必要なJARファイルは、YMutil.jar
、YMinformix.jar
、YMbase.jar
です。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。
Example: D:\informix_installed\YMutil.jar;D:\informix_ installed\YMinformix.jar;D:\informix_installed\YMbase.jar;existing classpath entries
rwbuilder.conf: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\informix_ installed\YMutil.jar;D:\informix_installed\YMinformix.jar;D:\informix_ installed\YMbase.jar"> ... </engine>
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="D:\informix_ installed\YMutil.jar;D:\informix_installed\YMinformix.jar;D:\informix_ installed\YMbase.jar"> ... </engine>
jdbcpds.conf
: ${DOMAIN_HOME}/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>/
ディレクトリ内にあります。パラメータの詳細は、表14-1を参照してください。
Example:
<driver name = "informix-merant"
sourceDatabase = "informix"
subProtocol = "merant:informix"
connectString = "mainProtocol:subProtocol://databaseName"
class = "com.oracle.ias.jdbc.informix.InformixDriver"
connection = "oracle.reports.plugin.datasource.jdbcpds.
JDBCConnectionHandling">
</driver>
オラクル社以外が提供するドライバは、インストールおよび構成する必要があります。たとえば、ライセンスを所有していれば、BEA JDBCドライバを使用できます。カスタム・ドライバをインストールおよび構成するには、次の手順を実行します。
適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。
エントリをREPORTS_CLASSPATH
に追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。
注意: このREPORTS_CLASSPATH 変数は、すべてのUNIXプラットフォームで使用可能なreports.sh ファイルにあります。 |
必要なJARファイルについては、該当するドライバのドキュメントを参照してください。
Oracle Reports Builder: REPORTS_CLASSPATH
の既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.sh
ファイル内にあります。
Example: driver location\1st jar file;driver location\2nd jar file2;existing classpath entries
rwbuilder.conf
: rwbuilder.conf
構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="driver location\1st jar file;driver location\2nd jar file;"> ... </engine>
Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath
属性に、ドライバの場所を追加します。
Example: <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000" classPath="driver location\1st jar file;driver location\2nd jar file;"> ... </engine>
jdbcpds.conf
: ${DOMAIN_HOME}/config/fmwconfig/components/ReportsServerComponent/<reports_server_name>/
ディレクトリ内にあります。該当するドライバの構成情報をjdbcpds.conf
ファイルに追加します。必須パラメータの詳細は、表14-1を参照してください。
Example:
<driver name = "<driver name>"
sourceDatabase = "<sourceDatabase>"
subProtocol = "<subProtocol>"
connectString = "mainProtocol:subProtocol://databaseName"
class = "<driver class name>"
connection ="<connection handling class">
</driver>
注意: この値は、カスタム接続ダイアログを実装しない場合は、カスタム・ドライバに対してconnection = "oracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandling" にすることができます。 |
関連するJDBCドライバを構成した後、SQLまたはストアド・プロシージャを使用して、JDBC問合せを定義および実行できます。
JDBC問合せを定義する手順は次のとおりです。
Oracle Reports Builderを起動します。
レポート・ウィザードを起動します。
データ・ソース・タイプとして「JDBC問合せ」を選択し、「次へ」をクリックします。レポート・ウィザードの使用方法の詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。
「データ・ソース定義」ウィンドウで、「問合せ定義」をクリックします。
次のいずれかを定義します。
SQL問合せ:
SELECT * FROM DEPARTMENT;
ストアド・プロシージャ:
使用するデータベースのストアド・プロシージャの完全なコール構文を入力します。例:
TestProc(40)
コール構文の詳細は、データベースのドキュメントを参照してください。
JDBC PDSは、指定されたとおりにコール文をドライバに送信してストアド・プロシージャを起動します。
表14-2 Excelデータソースの指定
問合せ(単一ワークシート) | 問合せ(複数ワークシート) |
---|---|
ワークシートの最初の行の値は、問合せの列名として取得されます。 注意: 最初の行のどの列にも値が指定されていない場合、デフォルトの名前はFcolumnNumberになります。たとえば、8列目はF8、9列目はF9というようになります。 |
ワークシートの最初の行は、問合せの列名として取得されます。 注意: 最初の行のどの列にも値が指定されていない場合、デフォルトの名前はFcolumnNumberになります。たとえば、8列目はF8、9列目はF9というようになります。 |
サインオン・パラメータ名を指定します。このサインオン・パラメータは、データベースに対して実行されるときに接続情報に関連付けられます。デフォルトのサインオン・パラメータ名はP_JDBCPDS
です(第A.7.10項「P_JDBCPDS」を参照)。
新しいサインオン名を入力し、「接続」をクリックします。Oracle Reports Servicesを使用してレポートを実行する際には、このサインオン・パラメータを使用して、データベース接続を指定します。
そのドライバ・タイプの接続情報(ユーザー名、パスワード、データベース名)を入力します。接続情報の例の詳細は、表14-3、表14-4、表14-5、表14-6および表14-7を参照してください。
ドライバ・タイプを選択します。jdbcpds.conf
ファイルに入力された値に基づいて、ドライバ・リストが表示されます。
「接続」をクリックして、新しいサインオンを使用してデータベースにアクセスします。内部的に作成された接続文字列は、次の2つの組合せです。
jdbcpds.conf
ファイルで定義されているconnectString
ドライバ属性(表14-1を参照)
connect string
のデータベース名部分の入力に使用される「接続」ダイアログで指定された接続情報
「OK」をクリックして、JDBC問合せを実行します。
レポート・ウィザードには、問合せの説明が表示されます(図14-4)。
ウィザードの手順に従ってレイアウトを定義し、JDBC問合せに基づいてレポートを実行します。
表14-3、表14-4、表14-5、表14-6、表14-7、表14-8および表14-9では、次で使用する接続情報の例を示しています。
プリインストール・ドライバ。すなわちOracle JDBC Thinドライバ、Oracle JDBC OCI (Thick)ドライバおよびJDBC-ODBCドライバ。
Oracle Technology Network(http://www.oracle.com/technetwork/index.html
)から入手可能なDataDirect Merantドライバ。
表14-3 Oracle Thinドライバ
プロパティ | 値 |
---|---|
ユーザー名 |
|
パスワード |
|
データベース |
例: |
表14-4 Oracle Thickドライバ
プロパティ | 値 |
---|---|
ユーザー名 |
|
パスワード |
|
データベース |
|
表14-5 JDBC-ODBCドライバ
プロパティ | 値 |
---|---|
ユーザー名 |
該当なし |
パスワード |
このパスワードは、ODBC接続を確立する時点で設定されます。 |
データベース |
|
表14-6 Sybase
プロパティ | 値 |
---|---|
ユーザー名 |
|
パスワード |
|
データベース |
例: |
表14-7 DB2
プロパティ | 値 |
---|---|
ユーザー名 |
|
パスワード |
|
データベース |
例1: 例2: |
JDBC問合せ(Reports Serverまたはrwrun
エンジン)を含むレポートを実行する際、サインオン・パラメータを使用して、JDBCデータ・ソースの接続情報を送信します。このサインオン・パラメータは、Reports Builderでの設計時にJDBC問合せに対して定義されます。
たとえば、Sybaseデータ・ソースに対するJDBC問合せ、DB2データ・ソースに対するJDBC問合せ、およびOracleデータ・ソースに対するSQL問合せがレポートに含まれる場合、これらの要求を次のように定義できます。
http://your_ias_ server:port//reports/rwservlet?report=my.rdf&userid=user/pwd@oracledb &desformat=pdf&destype=cache&p_sybasepds=sybaseuser/pw@sybasehost:port &p_db2pds=db2user/pwd@db2host:port
説明:
userid
は、SQL問合せを実行する際、Oracleデータベースに接続するための値です。レポートにSQL問合せもREF CURSOR
問合せもない場合は、userid
の指定は不要です。
p_sybasepds
は、SybaseへのJDBC問合せに関連付けられたサインオン・パラメータです。
p_db2pds
は、設計時にレポート内で定義された、DB2へのJDBC問合せに関連付けられたサインオン・パラメータです。
Reports Builderでのレポートの設計時に「JDBC問合せ」ダイアログ・ボックスで名前を指定しないと、デフォルトのサインオン・パラメータ名のP_JDBCPDSが使用されます。
この項では、次の項目の一覧を示します。
JDBC PDSエラー・メッセージ(「エラー・メッセージ」)
JDBC問合せのトラブルシューティング(「トレース情報」)
表14-10、表14-11および表14-12は、JDBC PDSに関連するトラブルシューティング情報の一覧です。
表14-10 データベース接続に関連するエラー・メッセージ
エラー・メッセージ | 原因 | 処置 |
---|---|---|
|
選択したドライバに対して、 |
|
|
接続情報が無効です。 |
ユーザー名、パスワード、データベースおよびドライバ・タイプの妥当性を確認します。 |
|
指定された問合せまたはプロシージャのサインオン・パラメータが無効です。 |
レポートのJDBC問合せタイプに対してサインオン・パラメータが使用可能かつ有効であることを確認します。 |
|
指定されたサインオン・パラメータに対する接続文字列が無効です。 |
このサインオン・パラメータに対して指定された接続文字列が、選択したドライバに対して有効であることを確認します。 |
表14-11 データソースの実行に関連するエラー・メッセージ
エラー・メッセージ | 原因 | 処置 |
---|---|---|
|
データベースへの接続に使用しているドライバが、日付データ・タイプを参照パラメータとしてサポートしていません。 |
次のいずれかを使用します。 文字列データ・タイプ(参照パラメータとして)。 日付データ・タイプをサポートする別のJDBCドライバ(参照パラメータとして)。 |
|
問合せまたはプロシージャで使用した文字パラメータが無効です。 |
問合せやプロシージャで使用している文字パラメータが有効であることを確認します。有効なパラメータがない場合は、新しいパラメータを作成します。 |
|
指定した問合せまたはプロシージャでSQL構文エラーが発生しました。 |
問合せまたはプロシージャの構文が有効であることを確認します。該当するデータ・ソースのドキュメントを参照してください。 |
|
問合せまたはプロシージャの構文が無効です。 |
問合せまたはプロシージャの構文が有効であることを確認します。該当するデータ・ソースのドキュメントを参照してください。 |
|
参照パラメータ値が無効です。 |
参照列のタイプと値が正しいかどうかを確認します。 |
|
問合せまたはプロシージャのテキスト・フィールドが空です。 |
有効な問合せまたはプロシージャをテキスト・フィールドに入力します。 |
|
データベースURLが無効です。 |
指定したデータベース名と選択したドライバ・タイプが有効であることを確認します。 |
|
フェッチされたデータが、問合せ定義で指定されている列の数または列のタイプと一致していません。 |
列の数および列のタイプが問合せ定義と一致していることを確認します。 |
|
この列タイプは、Oracle ReportsのJDBC問合せインタフェースでサポートされていません。 |
Oracle ReportsのJDBC問合せインタフェースでサポートされている列タイプのみを使用していることを確認します。JDBC仕様およびOracle Reportsのドキュメントで、サポートされるすべてのタイプのリストを参照してください。 |
表14-12 ドライバ/PDSの問題の識別
エラー・メッセージ | 原因 | 処置 |
---|---|---|
|
|
DTDフォーマットを変更した場合は、JDBC PDS要件に対して構成ファイルが有効であることを確認します。 |
|
|
指定された行のエラーを修正します。 |
|
|
|
|
|
|
|
問合せで使用しているドライバが |
必要なドライバのエントリと関連するドライバ情報が、ともに |
JDBC問合せをデバッグするには、Oracle Reportsで生成される次の詳細トレース情報を参照します。
設計時(JDBC問合せの作成)および実行時(JDBC問合せの実行)のトレース
生成されたトレース情報は、次のものの検出に役立ちます。
文字パラメータやバインド・パラメータ
ドライバへの接続用に作成された最終的な接続文字列
ドライバから受け取ったメタデータ情報
データベースに送信した最終的な問合せ
例14-1は、設計時のトレース出力の例です。
例14-2は、実行時のトレース出力の例です。
logging.xml
ファイルの場所の詳細は、第24.3.5項「レポート実行のトレース」を参照してください
トレース出力の例
例14-1 「JDBC問合せ」ダイアログによるJDBC問合せの作成
Connection handling trace showing final connect string [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : start [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : subProtocol :sybase-merant [2003/4/7 5:41:38:686] Debug 50103 (jdbcpds): handleConnectButtonEvent : connection class :oracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandling [2003/4/7 5:41:38:696] Debug 50103 (jdbcpds): handleConnectButtonEvent : combine string :jdbc:merant:sybase://server1.example.com:1300 [2003/4/7 5:41:38:696] Debug 50103 (jdbcpds): JDBCDataSource : setJDBCQueryType: sybase [2003/4/7 5:41:41:350] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleConnectEvent : Valid Connection com.oracle.ias.jdbc.sybase.SybaseConnection@56fc16 [2003/4/7 5:41:41:350] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleConnectEvent : END com.oracle.ias.jdbc.sybase.SybaseConnection@56fc16 Design time metadata of query [2003/3/31 6:35:46:363] Debug 50103 (jdbcpds): JDBCUIEventHandler : handleOKEvent : Serialize XML<jdbcpds DTDVersion=" 1.0"><JDBCQuery>jdbcpdspkg.proc_with_param(1,2,3,4,5)</JDBCQuery><QueryDefinition>1</QueryDefinition><driverType>oracle </driverType><connectionClass>oracle.reports.plugin.datasource.jdbcpds.JDBCConnect ionHandling</connectionClass><SignOnParameter>P_JDBCPDS</SignOnParameter><jdbcElements><elementname = "EMPNO" type = "2" typeName = "NUMBER" columnSize = "4" columnScale = "0" /><element name = "ENAME" type = "12" typeName ="VARCHAR2" columnSize = "10" columnScale = "0" /><element name = "JOB" type = "12" typeName = "VARCHAR2" columnSize = "9" columnScale ="0" /><element name = "MGR" type = "2" typeName = "NUMBER" columnSize = "4" columnScale = "0" /><element name = "HIREDATE" type = "93" typeName = "DATE" columnSize = "16" columnScale = "0" /><element name = "SAL" type = "2" typeName = "NUMBER" columnSize = "7" columnScale= "2" /><element name = "COMM" type = "2" typeName = "NUMBER" columnSize = "7" columnScale = "2" /><element name = "DEPTNO" type = "2" typeName = "NUMBER" columnSize = "2" columnScale = "0" /></jdbcElements><referenceColumns></referenceColumns></jdbcpds> [2003/3/31 6:35:46:383] Debug 50103 (jdbcpds): JDBCUIEventHandler :handleOKEvent END
例14-2 JDBC問合せの実行
[2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime method : START Describing the JDBC Query: [2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): JDBCDataSource : describe : START [2003/3/18 5:45:17:707] Debug 50103 (jdbcpds): applyXML: Extract the Serilzed XML containing Query Meta Data <jdbcpds DTDVersion=" 1.0"><JDBCQuery>select * from emp</JDBCQuery><QueryDefinition>0</QueryDefinition><driverType>oracle</driverType> <connectionClass>oracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandling</ connectionClass>... ConnectionHandling At Runtime: [2003/3/18 5:45:17:737] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime : Create a new connection and handle it [2003/3/18 5:45:17:737] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : START [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : set driver [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : handleConnection : Check if Connection for the sign on parameter is pooled [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCExecuteQuerySource :handleConnection : connection available in pool [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): handleConnection : END [2003/3/18 5:45:17:778] Debug 50103 (jdbcpds): JDBCDataSource : startRuntime : END Runtime execution of jdbc query [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCDataSource : execute : run Query [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : START [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase: start Query stringto be submitted jdbcpdspkg.proc_with_param(1,2,3,4,5) [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : check connection [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : QSource Id: 1 [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure:Start [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure:Procedure to be submitted { call jdbcpdspkg.proc_with_param(?,?,?,?,?,?) } [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure: Set parameters for the procedure call [2003/3/31 6:36:2:836] Debug 50103 (jdbcpds): JDBCExecuteQuerySource: executeOracleProcedure: execute procedure [2003/3/31 6:36:2:847] Debug 50103 (jdbcpds): JDBCDataSource : execute : query execution over andresulset object is oracle.jdbc.driver.OracleResultSetImpl@751a9e [2003/3/31 6:36:2:847] Debug 50103 (jdbcpds): JDBCDataSource : execute : END Running Report trace with Result set info 2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCDataSource : execute : replace lexical columns withactual string for the query [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCDataSource : execute : run Query [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : START [2003/4/7 5:26:6:996] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase: start Query stringto be submitted select * from reports [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : check connection [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : QSource Id: 4 [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : Query source is SQL query [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): JDBCExecuteQuerySource:executeQuery Start [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery prepareStatement select * from reports [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery : bind parameters set for the query [2003/4/7 5:26:7:6] Debug 50103 (jdbcpds): executeQuery : JDBC Query executed [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): JDBCExecuteQuerySource : getOutputFromDatabase : Query result col 0 test col 1 10 [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): JDBCExecuteQuerySource:executeQuery Start [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery prepareStatement select * from reports [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery : bind parameters set for the query [2003/4/7 5:26:7:387] Debug 50103 (jdbcpds): executeQuery : JDBC Query executed [2003/4/7 5:26:7:767] Debug 50103 (jdbcpds): JDBCDataSource : execute : query execution over andresulset object is com.oracle.ias.jdbc.base.BaseResultSet@56c3cf [2003/4/7 5:26:7:767] Debug 50103 (jdbcpds): JDBCDataSource : execute : END
注意: Oracle ReportsではPDS APIが公開されチュートリアルも用意されており、ユーザー独自のPDSの実装方法やカスタマイズ方法の詳細が説明されています。詳細は、Oracle Technology Network (OTN)(http://www.oracle.com/technetwork/middleware/reports/overview/index.html )で提供されている『Oracle Reports Java API Reference』を参照してください。このAPIを使用すると、PDSの実装数に制限がなくなり、ユーザーの持つあらゆる種類のデータ・ソースにアクセスすることが可能になります。 |
JDBC PDSを追加するには、次の作業が必要です。
jdbcpds.conf
ファイルの構成方法の詳細は、第14.1.1項「JDBC構成ファイル」を参照してください。
ドライバのJARファイルをインストールする方法の詳細は、第14.1.1.2.5項「カスタム・ドライバ」を参照してください。