SQL 批次公用程式
使用「SQL 批次」公用程式,透過 JCL 來呼叫批次程式,以執行多個 SQL 陳述式。
「SQL 批次」公用程式隨附於 IMS Universal JDBC driver ,並使用 type-4 連線來提交 SQL 陳述式。 必須使用「 IBM® Java™ for z/OS® (JZOS) 批次啟動程式」來執行「SQL 批次」公用程式。

限制
目前未記載 SQL Batch 公用程式的任何限制。
必要條件
- 已安裝 IBM Java for z/OS (JZOS) 批次啟動程式。
- 已安裝 IMS 開放式資料存取解決方案。
- 已安裝並配置 IMS 型錄。
<
- IRRRacf.jar 和 ibmjzos.jar 檔案都位於工作的類別路徑中。
- 在 DriverManager.getConnection 方法的 applName URL 內容中,指定在 IMS DB 的 DRDA 用戶端存取的 PTKTDATA 類別中,定義給 RACF 的 1 到 8 個字元應用程式名稱。
- 下列值彼此相同:
- DriverManager.getConnection 方法的 applName URL 內容值。
- ODACCESS 陳述式的 APPL= 參數值,該陳述式位於 IMS PROCLIB 資料集的 HWSCFGxx 成員中。
- 在 SQL Batch 公用程式 JCL 的 JOB 陳述式上,指定了與工作相關聯的 z/OS 使用者 ID。
建議
目前未記載 SQL Batch 公用程式的任何建議。
輸入與輸出
- 與 JCL 行內
- 在 JCL 所參照的資料集中
- 在「UNIX ® 系統服務」上 JCL 所參照的檔案中
回覆碼
- 代碼
- 意義
- 0
- 未偵測到任何錯誤。
- 11 日
- IMS Connect 連線失敗。 請驗證連線參數是否正確。
- 12
- 無法執行 SQL 陳述式,且所有工作已回復至前一個確定點。 請驗證 SQL 陳述式是否有效。
- 13
- 確定未順利完成。
- 14
- 回復未順利完成。
- 15
- 未適當地清除連線。
- 16
- 指定了無效的 SQL 陳述式。 請驗證輸入檔只包含有效的 SQL 陳述式。
- 100
- 找不到 Java main 類別,或 main 方法擲出異常狀況。
- 101
- 發生配置或設定錯誤。 如需相關資訊,請參閱 SYSOUT 訊息。
- 102
- 發生系統或內部錯誤。 如需相關資訊,請參閱 SYSOUT 訊息。
如需回覆碼 11-16 的相關資訊,請參閱 STDOUT 及 STDERR 中的輸出訊息。
JZOS 批次啟動程式會發出回覆碼 0、100、101 和 102。JCL 規格
「SQL 批次」公用程式是透過使用「JZOS 批次啟動程式」來啟動公用程式的標準 z/OS 工作來執行。 需要下列 JCL 陳述式:- 您定義以符合安裝規格的 JOB 陳述式。
- SET P1 陳述式
- EXEC 陳述式
- 定義輸入及輸出的 DD 陳述式
SET P1 陳述式必須採用下列格式:
// SET P1='com.ibm.ims.jdbc.batch.BatchUtil'在 SET P1 陳述式中, com.ibm.ims.jdbc.batch.BatchUtil 是主要「SQL 批次」公用程式類別。 此公用程式類別位於 IMS JDBC 驅動程式 (imsudb.jar) 中。
EXEC 陳述式
//JAVAJVM EXEC PGM=JVMLDMxx,REGION=0M,
// PARM='/ &P1' 變數 JVMLDMxx 必須取代為「JZOS 批次啟動程式」的 IBM SDK for z/OS 版本。 例如,若為 IBM 64 位元 SDK 第 7 版,請指定 JVMLDM76。
DD 陳述式
- STEPLIB DD
- 指向 JZOS.LOADLIB,這是 JVMLDM 模組的 STEPLIB。
需要 STEPLIB DD 陳述式。
- SYSPRINT DD
- 定義系統工作日誌的訊息資料集。 資料集可以在印表機、磁帶或直接存取裝置上,或透過輸出串流遞送。
這個 DD 陳述式是必要的。
- SYSOUT DD
- 定義系統工作日誌錯誤資訊的訊息輸出資料集。 資料集可以在印表機、磁帶或直接存取裝置上,或透過輸出串流遞送。
這個 DD 陳述式是必要的。
- STDOUT DD
- 定義 Java 工作的訊息輸出資料集。 資料集包含來自 Java System.out的輸出。 資料集可以在印表機、磁帶或直接存取裝置上,或透過輸出串流遞送。 您可以選擇性地在這個 DD 陳述式中指定 UNIX 系統服務上的檔案。
這個 DD 陳述式是必要的。
- STDERR DD
- 定義 Java 工作之錯誤資訊的訊息輸出資料集。 資料集包含來自 Java
System.err的輸出。 資料集可以在印表機、磁帶或直接存取裝置上,或透過輸出串流遞送。
這個 DD 陳述式是必要的。
- CEEDUMP DD
- 定義 Language Environment ® 執行時期選項。
- MAINARGS DD
- 定義主要 Java 類別的輸入引數。
- IMSSQL DD
- 定義要執行的 SQL 陳述式。 您可以在行內、資料集中或 UNIX System Services 上的檔案中指定 SQL 陳述式。
範例 1: 在行內指定陳述式
//IMSSQL DD * CONNECT jdbc:ims://myConnectServer:myPort/DFSCP001; CREATE DATABASE myDB...; CREATE TABLE myTable ...; COMMIT; DISCONNECT;範例 2: 指定使用者名稱和密碼
下列範例與前述範例相同,不同之處在於 CONNECT 陳述式中包含使用者名稱及密碼,以進行安全檢查。 在此範例中,密碼之後需要兩個分號。
CONNECT 陳述式的語法符合 IMS Universal JDBC driver 針對 type-4 連線所定義的語法。 如需相關資訊,請參閱 使用 JDBC DriverManager 介面連接至 IMS 資料庫。
//IMSSQL DD * CONNECT jdbc:ims://myConnectServer:myPort/DFSCP001:user=myUserName;password=myPassword;; CREATE DATABASE myDB...; CREATE TABLE myTable ...; COMMIT; DISCONNECT;範例 3: 在資料集中指定陳述式
//IMSSQL DD DISP=SHR, // DSN=myPDS(myScript)範例 4. 在 UNIX 系統服務上的檔案中指定陳述式
//IMSSQL DD PATH='/stdin-file-pathname',PATHOPTS=(ORDONLY)這個 DD 陳述式是必要的。
- STDENV DD
- 定義 Java 環境變數。 在本節中,請確定下列陳述式指向您的 JDK 路徑:
export JAVA_HOME=myJavaHomePath此外,請確定下列陳述式指向 IMS Universal JDBC driver的路徑,其中包括 SQL Batch 公用程式:CLASSPATH="$CLASSPATH":myLibPath/imsudb.jar需要這個 DD 陳述式。