Java アプリケーションでの XML パラメーターを指定したルーチンの呼び出し
Javaアプリケーションは、 Db2 の Linux®、UNIX、Windowsシステム、またはXMLパラメータを持つ Db2 for z/OS® データソースで、ストアドプロシージャを呼び出すことができます。
ネイティブ SQL プロシージャーの場合、ストアード・プロシージャー定義内の XML パラメーターは XML タイプです。 Db2、 Linux、UNIX、およびWindowsシステムデータソース上の外部ストアドプロシージャおよびユーザー定義関数では、ルーチン定義内のXMLパラメータはXML AS CLOB型です。 XML パラメーターのあるストアード・プロシージャーまたはユーザー定義関数を呼び出す場合は、呼び出しステートメントで互換データ・タイプを使用する必要があります。
JDBC プログラムから XML 入力パラメーターのあるルーチンを呼び出すには、java.sql.SQLXML または com.ibm.db2.jcc.DB2Xml タイプのパラメーターを使用します。 XML 出力パラメーターを登録するには、パラメーターを java.sql.Types.SQLXML または com.ibm.db2.jcc.DB2Types.XML タイプで登録します。 (com.ibm.db2.jcc.DB2Xml および com.ibm.db2.jcc.DB2Types.XML タイプは推奨されません。)
例: 3 つの XML パラメーター (IN パラメーター、OUT パラメーター、および INOUT パラメーター) を使用するストアード・プロシージャーを呼び出す JDBC プログラム。 この例では JDBC 4.0 以降が必要です。
java.sql.SQLXML in_xml = xmlvar;
java.sql.SQLXML out_xml = null;
java.sql.SQLXML inout_xml = xmlvar;
// Declare an input, output, and
// INOUT XML parameter
Connection con;
CallableStatement cstmt;
ResultSet rs;
…
cstmt = con.prepareCall("CALL SP_xml(?,?,?)");
// Create a CallableStatement object
cstmt.setObject (1, in_xml); // Set input parameter
cstmt.setObject (3, inout_xml); // Set inout parameter
cstmt.registerOutParameter (2, java.sql.Types.SQLXML);
// Register out and input parameters
cstmt.registerOutParameter (3, java.sql.Types.SQLXML);
cstmt.executeUpdate(); // Call the stored procedure
out_xml = cstmt.getSQLXML(2); // Get the OUT parameter value
inout_xml = cstmt.getSQLXML(3); // Get the INOUT parameter value
System.out.println("Parameter values from SP_xml call: ");
System.out.println("Output parameter value ");
MyUtilities.printString(out_xml.getString());
// Use the SQLXML.getString
// method to convert the out_xml
// value to a string for printing.
// Call a user-defined method called
// printString (not shown) to print
// the value.
System.out.println("INOUT parameter value ");
MyUtilities.printString(inout_xml.getString());
// Use the SQLXML.getString
// method to convert the inout_xml
// value to a string for printing.
// Call a user-defined method called
// printString (not shown) to print
// the value.
SQLJ プログラムから XML パラメーターのあるルーチンを呼び出すには、java.sql.SQLXML または com.ibm.db2.jcc.DB2Xml タイプのパラメーターを使用します。
例: 3 つの XML パラメーター (IN パラメーター、OUT パラメーター、および INOUT パラメーター) を使用するストアード・プロシージャーを呼び出す SQLJ プログラム。 この例では JDBC 4.0 以降が必要です。
java.sql.SQLXML in_xml = xmlvar;
java.sql.SQLXML out_xml = null;
java.sql.SQLXML inout_xml = xmlvar;
// Declare an input, output, and
// INOUT XML parameter
…
#sql [myConnCtx] {CALL SP_xml(:IN in_xml,
:OUT out_xml,
:INOUT inout_xml)};
// Call the stored procedure
System.out.println("Parameter values from SP_xml call: ");
System.out.println("Output parameter value ");
MyUtilities.printString(out_xml.getString());
// Use the SQLXML.getString
// method toconvert the out_xml value
// to a string for printing.
// Call a user-defined method called
// printString (not shown) to print
// the value.
System.out.println("INOUT parameter value ");
MyUtilities.printString(inout_xml.getString());
// Use the SQLXML.getString
// method to convert the inout_xml
// value to a string for printing.
// Call a user-defined method called
// printString (not shown) to print
// the value.