找到 150 篇文章 適用於 DB2

COBOL-DB2 程式編譯步驟

Mandalika
更新於 2020 年 9 月 11 日 12:22:04

10K+ 次瀏覽

要準備一個 COBOL-DB2 程式以供執行,我們必須經歷某些步驟。這些步驟包括預編譯 - 編譯 - 繫結 - 連結編輯。預編譯是使用實用程式 DSNHPC 完成的。在預編譯步驟中,源程式中存在的所有 SQL 語句都將替換為相應的 COBOL 呼叫。所有 SQL 語句都儲存在稱為資料庫資源模組 (DBRM) 的物件中,並傳遞給 BIND 步驟。修改後的原始碼傳遞給編譯步驟。在編譯步驟中,編譯修改後的原始碼並生成目標模組。這... 閱讀更多

在 DB2 程式中進行非 SQL 更改而不進行 BIND 時,執行結果是什麼?

Mandalika
更新於 2020 年 9 月 11 日 12:15:33

271 次瀏覽

在每個 COBOL-DB2 程式的執行中,都會比較載入模組和包/DBRM 的時間戳。如果程式中變數的長度發生更改(並且沒有 SQL 更改)並且已編譯,則載入模組將具有新生成的時間戳,另一方面,如果未執行 BIND,則包/DBRM 將具有舊時間戳。執行此程式時,呼叫此程式的 JCL 步驟將因 SQL 錯誤程式碼 -818 而失敗。如果我們有一個 COBOL-DB2 程式,其中 SQL 語句永遠不會更改... 閱讀更多

如果 DBRM 和載入模組之間存在時間戳不匹配,結果會怎樣?

Mandalika
更新於 2020 年 12 月 1 日 04:57:26

659 次瀏覽

當 COBOL-DB2 原始碼作為預編譯階段的輸入給出時,我們會得到兩個重要的元件——DBRM 和修改後的原始碼。在修改後的原始碼中,SQL 語句被替換為 COBOL 呼叫,而 DBRM 包含 COBOL-DB2 程式中存在的所有 SQL 語句。預編譯器在 DBRM 和修改後的原始碼中都插入時間戳。如果 DBRM 直接繫結到計劃,則在執行 COBOL-DB2 程式時,系統會比較 DBRM 和載入模組的時間戳。如果時間戳不匹配,則 JCL 步驟... 閱讀更多

當 DB2 程式在不同日期編譯和繫結時,執行結果是什麼?

Mandalika
更新於 2020 年 9 月 11 日 12:12:19

124 次瀏覽

程式將成功執行(除非程式中存在邏輯錯誤),因為時間戳是在預編譯期間插入 DBRM 中的,並且預編譯是在編譯步驟之前完成的。因此,DBRM 和載入模組將具有相同的時間戳。插入 DBRM 中的時間戳也進一步傳遞給包。因此,如果我們使用 DBRM-包-計劃組合,在這種情況下,程式也將成功執行,因為整個過程中時間戳保持一致。

當 DB2 子程式發生更改時,是否需要將其與程式一起繫結?

Mandalika
更新於 2020 年 9 月 11 日 12:07:32

698 次瀏覽

當任何 COBOL-DB2 程式預編譯時,當前時間戳將插入 DBRM 中,如果 DBRM 繫結到包,則時間戳將進一步複製到包中。同樣,在編譯過程中也會在載入模組中插入時間戳。當執行任何 COBOL-DB2 程式時,系統會將載入模組的時間戳與 DBRM/包中的時間戳進行匹配,如果存在不匹配,則程式將失敗。如果 DBRM 直接繫結到計劃,即使只有子程式經過... 閱讀更多

如何將 DBRM 繫結到包中,並將包繫結到計劃中?

Mandalika
更新於 2020 年 9 月 11 日 12:03:38

3K+ 次瀏覽

DBRM 可以直接繫結到計劃,或者我們也可以先將 DBRM 繫結到包中,然後將該包繫結到計劃中。如果 DBRM 直接繫結到計劃,如果原始碼發生某些更改,則必須生成新的 DBRM,然後必須重新繫結整個計劃。由於計劃包含多個 DBRM,因此係統將再次處理所有 DBRM 以繫結該計劃(即使其他 DBRM 未發生任何更改)。此過程需要大量資源,例如記憶體、處理器和寶貴... 閱讀更多

如何將 DBRM 直接繫結到計劃中?

Mandalika
更新於 2020 年 9 月 11 日 11:56:40

589 次瀏覽

DBRM 是從原始碼預編譯生成的 DB2 物件。它包含原始碼中的所有 SQL 語句/查詢。由於 DBRM 的格式,無法直接執行它,因此必須先將其繫結到計劃中。可以將多個 DBRM 繫結到單個計劃中。每當原始碼發生更改時,都必須使用更改的 SQL 語句/查詢重新生成相應的 DBRM。然後必須重新繫結包含舊 DBRM 的整個計劃。使用以下 JCL 步驟,我們可以將 DBRM 直接繫結到... 閱讀更多

如何預編譯 COBOL-DB2 程式?

Mandalika
更新於 2020 年 9 月 11 日 11:49:13

4K+ 次瀏覽

預編譯是將 COBOL-DB2 程式中使用的 SQL 語句替換為適當的 COBOL 呼叫的過程。在實際編譯之前需要進行預編譯,因為 COBOL 編譯器無法識別 DB2 SQL 語句,並且由於它們而會丟擲錯誤。DB2 實用程式 DSNHPC 用於預編譯。預編譯 JCL 步驟的輸入是用於 COBOL-DB2 程式中使用的各個表的 DCLGEN(在 SYSLIB 中)和 COBOL-DB2 源程式(在 SYSIN 中)。//STEP010 EXEC PGM=IKJEFT01 //SYSIN DD DSN=DIS.TEST.COBOL(PSNEW2), DISP=SHR //SYSLIB DD DSN=DIS.TEST.DCLGEN(PSDC2), DISP=SHR //DBRMLIB DD DSN=DIS.TEST.DBRMLIB(PSNEW2), DISP=SHR //SYSCIN DD DSN=DIS.TEST.COBL(PSCOB2), DISP=(NEW, CATLG, DEL), SPACE=(20,... 閱讀更多

如何將集合 COLLA 中的所有包繫結到計劃 PLANA?

Mandalika
更新於 2020 年 9 月 11 日 11:46:03

1K+ 次瀏覽

包是資料庫物件,它以 DB2 最佳化的形式包含來自 DBRM 的 SQL 語句。集合是一組包,我們可以使用它來分離屬於不同應用程式的 DB2 包。例如,在電信公司的生產環境中,我們可以為訂單處理、計費和客戶服務設定不同的集合。包或包組(集合)繫結到計劃中。計劃是一個可執行物件,它包含其中所有 SQL 查詢的 DB2 訪問路徑。我們可以將包直接繫結到計劃中,或者可以... 閱讀更多

如何執行計劃 PLANA 的 COBOL-DB2 程式 PROGA?

Mandalika
更新於 2020 年 9 月 11 日 11:41:41

3K+ 次瀏覽

COBOL-DB2 程式可以在 IKJEFT01 的幫助下執行。IKJEFT01 是一個內建的主機實用程式,允許我們透過作業控制語言 (JCL) 執行 z/OS TSO 命令。如果我們想執行計劃 PLANA 的 COBOL-DB2 程式 PROGA,則必須提供如下所示的 JCL 步驟。//STEP010 EXEC PGM=IKJEFT01 //STEPLIB DD DSN=DIS.TEST.LOADLIB, DISP=SHR //SYSOUT DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(TB3) RUN PROGRAM (PROGA) PLAN(PLANA) END /*在上面的 JCL 步驟中,我們首先使用了 IKJEFT01 實用程式來呼叫 COBOL-DB2 程式。程式 PROGA 的 loadlib 路徑在 STEPLIB 中給出,即 DIS.TEST.LOADLIB,並且... 閱讀更多

廣告

© . All rights reserved.