ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
11gリリース2 (11.1.2)
B70751-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

13.1 JDBC PDSの構成と使用

JDBCプラガブル・データソース(PDS)を使用すると、次のような任意のJDBCデータソースにアクセスできます。

Oracle ReportsにはデフォルトでJDBC PDSがインストールされており、あらゆるJDBC対応データ・ソースへのアクセスが可能です。

この章には、次の項があります。

13.1.1 JDBC構成ファイル

jdbcpds.confファイルは、Oracle ReportsのJDBC PDS構成ファイルです。これは、次のディレクトリに格納されています。

  • Reports Serverの場合:
    ORACLE_INSTANCE\config\ReportsServerComponent\server_name

  • Oracle Reports Builderの場合:
    ORACLE_INSTANCE\config\ReportsToolsComponent\ReportsTools

  • 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つのセクションがあります。

  • XMLフォーマットおよびドライバ構成情報を記述する内部DTDセクション


    注意:

    このセクションは変更不可です。


  • ドライバ名、接続文字列の書式、ドライバ・クラスなどのドライバ情報を詳述するXMLセクション


ノート:

このセクションで、ドライバ情報を変更または追加することができます。


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>

表13-1では、ドライバに関連付けることのできる各種属性を説明しています。

表13-1 ドライバの属性

属性名 説明

name

一意のユーザー定義値。Oracle Reportsで特定のJDBCドライバを参照するために使用されます。

sybase-merant

sourceDatabase

ドライバが参照するデータベース。有効なエントリは、次のとおりです。

oracle

sqlserver

sybase

db2

informix

odbc

other

oracle

subProtocol

データベース接続の作成前にデータベースURLとともに追加されるドライバ・サブ・プロトコル。ドライバ固有の情報です。この情報については、各ドライバのドキュメントを参照してください。たとえば、Merantドライバへの接続に使用されるサブ・プロトコルは次のとおりです。

Sybaseの場合は、merant:sybase

SQL Serverの場合は、merant:sqlserver

merant:sybase

connectString

ドライバの接続文字列の書式はmainProtocol:sub Protocol://databaseURLです。例: jdbc:subProtocol://databaseNamesubProtocolまたはdatabaseNameには実際の値を指定せず、固定のプレースホルダ名を使用します。

mainProtocol:subProtocol://databaseName

class

REPORTS_CLASSPATHに登録し、ドライバをロードするためのドライバ・クラス名。ドライバ固有の情報です。この情報については、各ドライバのドキュメントを参照してください。

com.oracle.ias.jdbc.informix.InformixDriver

connection

ドライバの接続処理クラス。JDBC PDSはドライバごとに異なる接続処理クラスを持つことができます。Oracle Reportsのデフォルト接続処理クラスはoracle.reports.plugin.datasource.jdbcpds.JDBCConnectionHandlingであり、ほとんどのドライバで使用できます。

JDBC Connectionクラスの拡張方法の詳細は、Oracle ReportsのJava APIリファレンスを参照してください。

oracle.reports.plugin.datasource.jdbcpds. JDBCConnectionHandling

loginTimeout(オプション)

ドライバ固有のパラメータ。秒単位で値を指定します。詳細は、ドライバのドキュメントを参照してください。

0

property

ドライバの追加プロパティを属性名で任意に指定します。

-


レポートの接続詳細を送信する際には、接続情報とjdbcpds.confファイルで指定されているドライバ構成情報とが組み合せられます。この組み合せた接続情報が、完全な接続URLとしてデータベースに送信されます。接続情報の例の詳細は、表13-3表13-4表13-5表13-6および表13-7を参照してください。

図13-0では、jdbcpds.confファイルで構成されているすべてのドライバの一覧を示しています。

図13-1 Oracle Reports BuilderのJDBC接続ダイアログ・ボックス

図13-1の説明が続きます
「図13-1 Oracle Reports BuilderのJDBC接続ダイアログ・ボックス」の説明

13.1.1.1 プリインストールされているドライバ・エントリの確認

Oracle Reportsには、SQL ServerやExcelのJDBC-ODBCドライバ、Oracle JDBC Thinドライバ、Oracle JDBC OCI (Thick)ドライバなどがインストールおよび構成されています。次のドライバには、追加のJARファイルをインストールする必要がありません。

  • Oracle JDBC Thinドライバ

  • Oracle JDBC OCI (Thick)ドライバ

  • JDBC-ODBCドライバ

    JDBC-ODBCドライバを使用すると、SQL ServerやExcelのデータが扱えます。このドライバのエントリは、jdbcpds.confファイルに事前構成されています。SQL ServerやExcelのデータをJDBC-ODBCドライバで使用するには、ODBCデータ・ソースを作成する必要があります。ODBCデータ・ソースの作成方法の詳細は、Windowsヘルプを参照してください。


    ノート:

    Oracle Fusion Middlewareでは、SQL Serverへのアクセスにも使用できるMerant DataDirectドライバが用意されています。


13.1.1.2 Merant DataDirectドライバのインストールと構成

オラクル社は、Merant DataDirectドライバ・セット(バージョン3.2)を提供しています。これは、OTN(http://www.oracle.com/technetwork/index.html)からダウンロードできます。ドライバ構成ファイル(jdbcpds.conf)には、Merant DataDirectドライバ関連のエントリがあります。さらに、JDBC接続ダイアログ(表13-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ドライバを構成するには:

  1. 適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    必要なJARファイルについては、この項の該当するドライバの記述を参照してください。

    1. Oracle Reports Builder: REPORTS_CLASSPATHの既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.shファイル内にあります。この項の該当するドライバの例を参照してください。

    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。この項の該当するドライバの例を参照してください。

    3. Reports Server: Reports Server構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。この項の該当するドライバの例を参照してください。

    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。パラメータの詳細は、表13-1を参照してください。この項の該当するドライバの例を参照してください。

13.1.1.2.1 Sybaseドライバ

  1. 適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

    必要なJARファイルは、YMutil.jarYMsybase.jarYMbase.jarです。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    1. 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
      
    2. 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>
      
    3. 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>
      
    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。必須パラメータの詳細は、表13-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>
      

13.1.1.2.2 DB 2ドライバ

  1. 適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

    必要なJARファイルは、YMutil.jarYMdb2.jarYMbase.jarです。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    1. 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
      
    2. 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>
      
    3. 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>
      
    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。パラメータの詳細は、表13-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> 
      

13.1.1.2.3 SQL Serverドライバ

  1. 適切な.jarファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

    必要なJARファイルは、YMutil.jarYMsqlserver.jarYMbase.jarです。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    1. 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
      
    2. 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>
      
    3. 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> 
      
    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。パラメータの詳細は、表13-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> 
      

13.1.1.2.4 Informixドライバ

  1. 適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

    必要なJARファイルは、YMutil.jarYMinformix.jarYMbase.jarです。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    1. 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
      
    2. 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>
      
    3. 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>
      
    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。パラメータの詳細は、表13-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>
      

13.1.1.2.5 カスタム・ドライバ

オラクル社以外が提供するドライバは、インストールおよび構成する必要があります。たとえば、ライセンスを所有していれば、BEA JDBCドライバを使用できます。カスタム・ドライバをインストールおよび構成するには、次のステップを実行します。

  1. 適切なJARファイルをOracle Fusion MiddlewareとOracle Developer Suiteのディレクトリにインストールします。

  2. エントリをREPORTS_CLASSPATHに追加して、Oracle Reports BuilderとOracle Reports Servicesでそれらのファイルを使用できるようにします。


    ノート:

    このREPORTS_CLASSPATH変数は、すべてのUNIXプラットフォームで使用可能なreports.shファイルにあります。


    必要なJARファイルについては、該当するドライバのドキュメントを参照してください。

    1. Oracle Reports Builder: REPORTS_CLASSPATHの既存エントリの前に、ドライバの場所を挿入します。この変数は、Windowsの場合はレジストリ内に、UNIXの場合はreports.shファイル内にあります。

      Example:
      driver location\1st jar file;driver location\2nd jar file2;existing classpath entries
      
    2. 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>
      
    3. 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> 
      
    4. jdbcpds.conf: ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリ内にあります。該当するドライバの構成情報をjdbcpds.confファイルに追加します。必須パラメータの詳細は、表13-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"にすることができます。


13.1.2 JDBC問合せの定義と実行

関連するJDBCドライバを構成した後、SQLまたはストアド・プロシージャを使用して、JDBC問合せを定義および実行できます。

JDBC問合せを定義するには:

  1. Oracle Reports Builderを起動します。

  2. レポート・ウィザードを起動します。

  3. データ・ソース・タイプとして「JDBC問合せ」を選択し、「次へ」をクリックします。レポート・ウィザードの使用方法の詳細は、Oracle Reportsのオンライン・ヘルプを参照してください。

    図13-2 データソース・タイプの選択

    図13-2の説明が続きます
    「図13-2 データ・ソース・タイプの選択」の説明

  4. 「データ・ソース定義」ウィンドウで、「問合せ定義」をクリックします。

  5. 次のいずれかを定義します。

    • SQL問合せ:

      SELECT * FROM DEPARTMENT;
      
    • ストアド・プロシージャ:

      使用するデータベースのストアド・プロシージャの完全なコール構文を入力します。例:

      TestProc(40)

      コール構文の詳細は、データベースのドキュメントを参照してください。

      JDBC PDSは、指定されたとおりにコール文をドライバに送信してストアド・プロシージャを起動します。

      図13-3 ストアド・プロシージャのコール

      図13-3の説明が続きます
      「図13-3 ストアド・プロシージャのコール」の説明

    • 表13-2 Excelデータソースの指定

      問合せ(単一ワークシート) 問合せ(複数ワークシート)

      SELECT * FROM [SHEET1$]またはSELECT COL1, COL2, ...COLn FROM [SHEET1$]

      SHEET1$は.xlsファイルの名前です。

      ワークシートの最初の行の値は、問合せの列名として取得されます。

      ノート: 最初の行のどの列にも値が指定されていない場合、デフォルトの名前はFcolumnNumberになります。たとえば、8列目はF8、9列目はF9というようになります。

      SELECT * FROM [WORKSHEETNAME$]

      [WORKSHEETNAME$]は、ワークシートの名前です。

      ワークシートの最初の行は、問合せの列名として取得されます。

      ノート: 最初の行のどの列にも値が指定されていない場合、デフォルトの名前はFcolumnNumberになります。たとえば、8列目はF8、9列目はF9というようになります。


  6. サインオン・パラメータ名を指定します。このサインオン・パラメータは、データベースに対して実行されるときに接続情報に関連付けられます。デフォルトのサインオン・パラメータ名はP_JDBCPDSです(第A.7.10項「P_JDBCPDS」を参照)。

    1. 新しいサインオン名を入力し、「接続」をクリックします。Oracle Reports Servicesを使用してレポートを実行する際には、このサインオン・パラメータを使用して、データベース接続を指定します。

    2. そのドライバ・タイプの接続情報(ユーザー名、パスワード、データベース名)を入力します。接続情報の例については、表13-3表13-4表13-5表13-6および表13-7を参照してください。

    3. ドライバ・タイプを選択します。jdbcpds.confファイルに入力された値に基づいて、ドライバ・リストが表示されます。

    4. 「接続」をクリックして、新しいサインオンを使用してデータベースにアクセスします。内部的に作成された接続文字列は、次の2つの組合せです。

      • jdbcpds.confファイルで定義されているconnectStringドライバ属性(表13-1を参照)

      • connect stringのデータベース名部分の入力に使用される「接続」ダイアログで指定された接続情報

  7. 「OK」をクリックして、JDBC問合せを実行します。

  8. レポート・ウィザードには、問合せの説明が表示されます(図13-4)。

    図13-4 問合せの説明

    図13-4の説明が続きます
    「図13-4 問合せの説明」の説明

  9. ウィザードのステップに従ってレイアウトを定義し、JDBC問合せに基づいてレポートを実行します。

13.1.2.1 接続情報の例

表13-3表13-4表13-5表13-6表13-7表13-8および表13-9では、次で使用する接続情報の例を示しています。

  • プリインストール・ドライバ。すなわちOracle JDBC Thinドライバ、Oracle JDBC OCI (Thick)ドライバおよびJDBC-ODBCドライバ。

  • Oracle Technology Network(http://www.oracle.com/technetwork/index.html)から入手可能なDataDirect Merantドライバ。

    表13-3 Oracle Thinドライバ

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    hostname: 接続先サーバーのTCP/IPアドレスまたはTCP/IPホスト名。

    port: TCP/IPポート番号。

    property: 接続プロパティ。接続プロパティと有効な値のリストについては、ドライバのドキュメントを参照してください。

    例: server1.example.com:1300:session1


    表13-4 Oracle Thickドライバ

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    n123

    n123は、tnsnames.oraファイル内のtnsnameエントリです。


    表13-5 JDBC-ODBCドライバ

    プロパティ

    ユーザー名

    該当なし

    パスワード

    このパスワードは、ODBC接続を確立する時点で設定されます。

    データベース

    SQLSVR

    SQLSVRは、ODBCデータ・ソースのODBCデータ・エントリです。


    表13-6 Sybase

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    hostname: 接続先サーバーのTCP/IPアドレスまたはTCP/IPホスト名。

    port: TCP/IPポート番号。

    例: server1.example.com:1300


    表13-7 DB2

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    hostname: 接続先サーバーのTCP/IPアドレスまたはTCP/IPホスト名。

    port: TCP/IPポート番号。

    property: 接続プロパティ。接続プロパティと有効な値のリストについては、ドライバのドキュメントを参照してください。

    例1: server1:1654

    例2: server2:1721;PackageName=pkg1


    表13-8 SQL Server

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    hostname: 接続先サーバーのTCP/IPアドレスまたはTCP/IPホスト名。

    port: TCP/IPポート番号。

    例1: server1:1654


    表13-9 Informix

    プロパティ

    ユーザー名

    Reports

    パスワード

    Welcome

    データベース

    hostname: 接続先サーバーのTCP/IPアドレスまたはTCP/IPホスト名。

    port: TCP/IPポート番号。

    InformixServer name: Informixサーバー名。

    Database name: 接続先のデータベース名。

    例2: server_name:2003;InformixServer=myinformix_server;DatabaseName=scott/tiger@mydb


13.1.3 Oracle Reports Servicesを使用したJDBCレポートの実行

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が使用されます。

13.1.4 トラブルシューティング情報

この項では、次の項目の一覧を示します。

13.1.4.1 エラー・メッセージ

表13-10表13-11および表13-12は、JDBC PDSに関連するトラブルシューティング情報の一覧です。

表13-10 データベース接続に関連するエラー・メッセージ

エラー・メッセージ 原因 処置

接続クラス{0}はロードできません

選択したドライバに対して、jdbcpds.confファイルで指定されている接続クラスが無効です。

jdbcpds.confファイルで指定されているドライバ接続クラスが有効かつ使用可能であることを確認します。

データソースへの接続に失敗しました

接続情報が無効です。

ユーザー名、パスワード、データベースおよびドライバ・タイプの妥当性を確認します。

無効なサインオン・パラメータ{0}

指定された問合せまたはプロシージャのサインオン・パラメータが無効です。

レポートのJDBC問合せタイプに対してサインオン・パラメータが使用可能かつ有効であることを確認します。

サインオン・パラメータ{0}に無効な値が与えられました

指定されたサインオン・パラメータに対する接続文字列が無効です。

このサインオン・パラメータに対して指定された接続文字列が、選択したドライバに対して有効であることを確認します。


表13-11 データソースの実行に関連するエラー・メッセージ

エラー・メッセージ 原因 処置

日付タイプの参照パラメータは、使用しているJDBCドライバでサポートされていません

データベースへの接続に使用しているドライバが、日付データ・タイプを参照パラメータとしてサポートしていません。

次のいずれかを使用します。

文字列データ・タイプ(参照パラメータとして)。

日付データ・タイプをサポートする別のJDBCドライバ(参照パラメータとして)。

無効な文字パラメータ{0}が問合せに使用されています

問合せまたはプロシージャで使用した文字パラメータが無効です。

問合せやプロシージャで使用している文字パラメータが有効であることを確認します。有効なパラメータがない場合は、新しいパラメータを作成します。

SQLエラー:

指定した問合せまたはプロシージャでSQL構文エラーが発生しました。

問合せまたはプロシージャの構文が有効であることを確認します。該当するデータ・ソースのドキュメントを参照してください。

指定されたデータソースに対する無効な問合せ/プロシージャ

問合せまたはプロシージャの構文が無効です。

問合せまたはプロシージャの構文が有効であることを確認します。該当するデータ・ソースのドキュメントを参照してください。

参照パラメータ値が無効です

参照パラメータ値が無効です。

参照列のタイプと値が正しいかどうかを確認します。

入力された問合せ/プロシージャはありません

問合せまたはプロシージャのテキスト・フィールドが空です。

有効な問合せまたはプロシージャをテキスト・フィールドに入力します。

データベースURL:

データベースURLが無効です。

指定したデータベース名と選択したドライバ・タイプが有効であることを確認します。

列の数または列のタイプが、問合せ定義と一致していません

フェッチされたデータが、問合せ定義で指定されている列の数または列のタイプと一致していません。

列の数および列のタイプが問合せ定義と一致していることを確認します。

問合せ/プロシージャで使用されている列タイプ{0}はReportsのJDBC問合せではサポートされていません

この列タイプは、Oracle ReportsのJDBC問合せインタフェースでサポートされていません。

Oracle ReportsのJDBC問合せインタフェースでサポートされている列タイプのみを使用していることを確認します。JDBC仕様およびOracle Reportsのドキュメントで、サポートされるすべてのタイプのリストを参照してください。


表13-12 ドライバ/PDSの問題の識別

エラー・メッセージ 原因 処置

jdbcpds.conf構成ファイルのインラインDTDセクションは変更されました

jdbcpds.confファイルのインラインDTDセクションのフォーマットが変更されています。

DTDフォーマットを変更した場合は、JDBC PDS要件に対して構成ファイルが有効であることを確認します。

行番号:

jdbcpds.confファイルの指定された行でエラーが検出されました。

指定された行のエラーを修正します。

構成ファイルjdbcpds.confが見つかりません

ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリでjdbcpds.confファイルが見つかりません。

ORACLE_INSTANCE\config\ReportsServerComponent\server_nameディレクトリにjdbcpds.confファイルがあることを確認します。

構成ファイルjdbcpds.confの解析エラー。 エラー数:{0}

jdbcpds.confファイルのXMLセクションがそのインラインDTDに準拠していません。

jdbcpds.confファイルのXMLセクションが適切なインラインDTDを参照していることを確認します。

jdbcpds.confファイル内のドライバ{0}には現在エントリがありません

問合せで使用しているドライバがjdbcpds.confファイルで指定されていません。

必要なドライバのエントリと関連するドライバ情報が、ともにjdbcpds.confファイルにあることを確認します。


13.1.4.2 トレース情報

JDBC問合せをデバッグするには、Oracle Reportsで生成される次の詳細トレース情報を参照します。

  • 設計時(JDBC問合せの作成)および実行時(JDBC問合せの実行)のトレース

    生成されたトレース情報は、次のものの検出に役立ちます。

    • 文字パラメータやバインド・パラメータ

    • ドライバへの接続用に作成された最終的な接続文字列

    • ドライバから受け取ったメタデータ情報

    • データベースに送信した最終的な問合せ

    例13-1は、設計時のトレース出力の例です。

    例13-2は、実行時のトレース出力の例です。

    logging.xmlファイルの場所の詳細は、第23.3.7項「レポート実行のトレース」を参照してください

トレース出力の例

例13-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

例13-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

13.1.5 ユーザー独自のJDBCドライバの追加


ノート:

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を追加するには、次の作業が必要です。

13.1.5.1 jdbcpds.confファイルの構成

jdbcpds.confファイルの構成方法の詳細は、第13.1.1項「JDBC構成ファイル」を参照してください。

13.1.5.2 ドライバのJARファイルのインストール

ドライバのJARファイルをインストールする方法の詳細は、第13.1.1.2.5項「カスタム・ドライバ」 を参照してください。