ストアド プロシージャの呼び出しによって作成される結果セットの消費 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/qwr1571437338192.ditamap
dita:ditavalPath
ja-JP/qwr1571437338192.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

外部ストアド プロシージャは、動的な結果セットを15個まで作成するストアド プロシージャを呼び出すことができます。

以下に、SQL_SP_W_RSというストアド プロシージャを呼び出し、このストアド プロシージャによって作成される結果セットを消費させるJava外部ストアド プロシージャのサンプル コードを示します。

/**************************************************************
   DDL for the Java external stored procedure:

   REPLACE PROCEDURE CountRegions(  OUT  RowsFound INTEGER )
     LANGUAGE JAVA
     READS SQL DATA
     PARAMETER STYLE JAVA
     EXTERNAL NAME 'JarXSP:region.countRegion';
 **************************************************************/

public class region {

  public static void countRegion(int[] rowcount) throws SQLException
  {
    /* Establish default connection. */
    Connection con =
       DriverManager.getConnection("jdbc:default:connection");

    /* Call SQL stored procedure that returns a result set */
    CallableStatement stmt =
       con.prepareCall("CALL SQL_SP_W_RS( ? )");
    stmt.setInt(1,1);

    /* Check that a result set was returned. */
    if (stmt.execute()) {
       /* Get returned result set. */
       ResultSet rs = stmt.getResultSet();
       rowcount[0]=0;
       /* Count rows in result set. */
       while (rs.next()) {
          rowcount[0]++;
       }
    }
  }

  ...

}

ストアド プロシージャから結果セットを戻す方法については、<Teradata Vantage™ - SQLストアド プロシージャおよび埋め込みSQL、B035-1148>を参照してください。