ヘッダーをスキップ

Oracle Application Server Reports Services レポートWeb公開ガイド
10gリリース2(10.1.2)
B25067-01
目次
目次
索引
索引

戻る 次へ

9
JDBC PDSの構成と使用

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

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

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

9.1 JDBC構成ファイル

Oracle ReportsのJDBC PDS構成ファイルは、ORACLE_HOME¥reports¥confディレクトリのjdbcpds.confファイルです。このファイルは、次のドライバ用に事前構成されています。

これ以外のJDBCドライバを使用する場合は、jdbcpds.confファイル内で関連するエントリを追加または変更する必要があります。

Reports Builderでは、jdbcpds.confファイルのエントリに基づいて、ドライバのリストをJDBC問合せ接続ダイアログに表示します。このリストで、レポートのJDBC問合せに使用するドライバを選択します。

Reports Builderでは、起動時にjdbcpds.confのエントリが読み取られ、キャッシュに格納されます。Reports Builderを再起動すると、jdbcpds.confファイルに対する変更(たとえば、新しいJDBCドライバ・エントリの追加)の結果が表示されます。

jdbcpds.confファイルには、次の2つのセクションがあります。

jdbcpds.confファイルの内容の例を次に示します。

    <!-- DTD section - Not to be modified -->

    <!DOCTYPE jdbcpds [
    <!ELEMENT jdbcpds  (driverInfo)>
    <!ELEMENT driverInfo (driver+)>
    <!ELEMENT driver (property*)>
    <!ATTLIST driver  name          CDATA  #REQUIRED
                     sourceDatabase (oracle    |
                                     sqlserver |
                                     sybase    |
                                      db2       |
                                      informix  |
                                      odbc      |
                                      other) "oracle"
                      mainProtocol        ( jdbc ) "jdbc"
                      subProtocol   CDATA  #REQUIRED
                      connectString     CDATA  #REQUIRED
                      class         CDATA  #REQUIRED
                      connection    CDATA  #REQUIRED
                      loginTimeout      CDATA  "5"
    >
    <!ELEMENT property EMPTY>
    <!ATTLIST property   name  CDATA  #REQUIRED
                         value CDATA  #REQUIRED >

    ]>


    <!-- Add or modify the following section for your driver information -->
    <!-- Following drivers are available out-of-box in 9iAS -->

    <jdbcpds>
     <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>

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

表9-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://databaseNameになります。subProtocolまたは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としてデータベースに送信されます。接続情報の例の詳細は、表9-3表9-4表9-5表9-6および表9-7を参照してください。

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

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


画像の説明

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

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

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

オラクル社は、Merant DataDirectドライバ・セットを提供しています。これは、OTN(Oracle Technology Network)(http://www.oracle.com/technology/index.html)からダウンロードできます。ドライバ構成ファイル(jdbcpds.conf)には、Merant DataDirectドライバ関連のエントリがあります。さらに、JDBC接続ダイアログ(図9-1)には、オラクル社が提供するMerant DataDirectドライバ・セットのエントリが一覧表示されます。

ただし、適切なJARファイルをインストールし、それをReports BuilderおよびOracleAS Reports Servicesから使用できるように、Oracle Reports固有のクラスパス・エントリで指定する必要があります。

オラクル社が提供する、Oracle Application ServerおよびOracle Developer Suiteで使用可能なドライバは次のとおりです。

カスタム・ドライバも、Oracle Application ServerおよびOracle Developer Suiteで使用するためにインストールおよび構成できます。

次に、Merant DataDirectドライバを構成する際の一般的な手順について説明します。個々のMerant DataDirectドライバを構成する手順については、それぞれ該当する項を参照してください。

Merant DataDirectドライバを構成する手順は次のとおりです。

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

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


    注意

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


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

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

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

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

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

9.1.2.1 Sybaseドライバ

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

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

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


    注意

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


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

      例:
      D:¥sybase_installed¥YMutil.jar;D:¥sybase_installed¥YMsybase.jar;D:¥sybase_
      installed¥YMbase.jar;existing classpath entries
      
      
    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。

      例:
      <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属性に、ドライバの場所を追加します。

      例:
      <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_HOME¥reports¥confディレクトリ内にあります。必須パラメータの詳細は、表9-1を参照してください。

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

9.1.2.2 DB2ドライバ

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

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

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


    注意

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


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

      例: 
      D:¥db2_installed¥YMutil.jar;D:¥db2_installed¥YMdb2.jar;D:¥db2_
      installed¥YMbase.jar;existing classpath entries
      
      
    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。

      例:
      <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属性に、ドライバの場所を追加します。

      例:
      <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_HOME¥reports¥confディレクトリ内にあります。パラメータの詳細は、表9-1を参照してください。

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

9.1.2.3 SQL Serverドライバ

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

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

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


    注意

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


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

      例:
      D:¥sqlserver_installed¥YMutil.jar;D:¥sqlserver_
      installed¥YMsqlserver.jar;D:¥sqlserver_installed¥YMbase.jar;existing
      classpath entries
      
      
    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。

      例:
      <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属性に、ドライバの場所を追加します。

      例:
      <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_HOME¥reports¥confディレクトリ内にあります。パラメータの詳細は、表9-1を参照してください。

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

9.1.2.4 Informixドライバ

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

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

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


    注意

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


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

      例: 
      D:¥informix_installed¥YMutil.jar;D:¥informix_
      installed¥YMinformix.jar;D:¥informix_installed¥YMbase.jar;existing
      classpath entries
      
      
    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。

      例:
      <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属性に、ドライバの場所を追加します。

      例:
      <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_HOME¥reports¥confディレクトリ内にあります。パラメータの詳細は、表9-1を参照してください。

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

9.1.2.5 カスタム・ドライバ

オラクル社が提供していないドライバをインストールおよび構成する手順は次のとおりです。

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

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


    注意

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


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

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

      例:
      driver location¥1st jar file;driver location¥2nd jar file2;existing classpath 
      entries
      
      
    2. rwbuilder.conf: rwbuilder.conf構成ファイル内にあるエンジンのclassPath属性に、ドライバの場所を追加します。

      例:
      <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属性に、ドライバの場所を追加します。

      例:
      <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_HOME¥reports¥confディレクトリ内にあります。該当するドライバの構成情報をjdbcpds.confファイルに追加します。必須パラメータの詳細は、表9-1を参照してください。

      例:
      <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"にすることができます。 


9.2 JDBC問合せの定義と実行

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

JDBC問合せを定義する手順は次のとおりです。

  1. Reports Builderを起動します。

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

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

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


    画像の説明

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

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

    • SQL問合せ:

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

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

      TestProc(40)

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

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

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


      画像の説明

      表9-2    Excelデータソースの指定 
      問合せ(単一ワークシート)  問合せ(複数ワークシート) 

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

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

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

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

      SELECT * FROM [WORKSHEETNAME$]

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

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

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

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

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

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

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

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

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

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

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

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

    図9-4    問合せの説明


    画像の説明

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

9.2.1 接続情報の例

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

9.3 OracleAS 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 

各項目の内容は次のとおりです。

Reports Builderでのレポートの設計時に「JDBC問合せ」ダイアログ・ボックスで名前を指定しなかった場合は、デフォルトのサインオン・パラメータ名P_JDBCPDSが使用されます。

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

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

9.4.1 エラー・メッセージ

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

表9-10    データベース接続に関連するエラー・メッセージ 
エラー・メッセージ  原因  処置 

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

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

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

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

接続情報が無効です。 

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

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

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

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

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

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

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

表9-11    データソースの実行に関連するエラー・メッセージ 
エラー・メッセージ  原因  処置 

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

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

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

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

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

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

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

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

SQLエラー: 

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

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

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

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

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

無効な参照パラメータ値 

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

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

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

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

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

データベースURL: 

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

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

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

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

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

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

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

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

表9-12    ドライバ/PDSの問題の識別 
エラー・メッセージ  原因  処置 

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

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

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

行番号: 

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

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

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

reports/confディレクトリでjdbcpds.confファイルが見つかりません。 

reports/confディレクトリにjdbcpds.confファイルがあることを確認します。 

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

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

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

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

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

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

9.4.2 トレース情報

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

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

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

トレース出力の例

例9-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.us.oracle.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


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

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


注意

Oracle Reportsでは、PDS APIを公開し、またチュートリアルも用意してユーザー独自のPDSの実装方法やカスタマイズ方法の詳細を説明しています。詳細は、Reports Software Development Kit(RSDK)を参照してください。RSDKを入手するには、OTN(Oracle Technology Network)のOracle Reports 10gページ(http://www.oracle.com/technology/products/reports/index.html)で「SDK」をクリックします。このAPIを使用すると、PDSを無制限に実装して、ユーザーの持つあらゆる種類のデータソースにアクセスすることが可能になります。 


JDBC PDSを追加するには、次の作業が必要です。

9.5.1 jdbcpds.confファイルの構成

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

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

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


戻る 次へ
Oracle
Copyright © 2003, 2005 Oracle.

All Rights Reserved.
目次
目次
索引
索引