MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

BINDを使用せずにプログラムでSQL以外の変更を行った場合の実行結果はどうなりますか?


問題: COBOL-DB2プログラムが変更され、変数の長さがPIC X(5)からPIC X(8)に増加しました。ただし、プログラムのSQLに変更はありません。プログラムのプラン/パッケージがこれらの変更にバインドされていない場合、結果はどうなりますか?

解決策

PIC X(5)からPIC X(8)への可変長の変更は、DB2の変更ではなく、プログラム内のSQLステートメントに必要な変更はありません。ただし、それでもPLAN / PACKAGEをバインドする必要があります。そうしないと、SQLエラーコード-818が表示されます。 P>

このSQLエラーの理由は次のとおりです。COBOL-DB2プログラムを実行するたびに、ロードモジュールとパッケージ/DBRMのタイムスタンプが比較されます。プログラムで変数の長さが変更され(SQLが変更されていない)、コンパイルされた場合、ロードモジュールには新しく生成されたタイムスタンプがあり、BINDが実行されていない場合は、 package/DBRMのタイムスタンプは古いものになります。このプログラムを実行すると、このプログラムを呼び出すJCLステップはSQLエラーコード-818で失敗します。

SQLステートメントが将来変更されることのないCOBOL-DB2プログラムがある場合は、オプションLEVELを使用してこのプログラムをプリコンパイルできます。以下は、LEVELオプションを使用したBINDステップのサンプルです。

//BIND EXEC PGM=IKJEFT01
//STEPLIB DD DSN=DIS.TEST.LOADLIB,DISP=SHR
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
DSN SYSTEM(TB3)
BIND PLAN(PLANA) -
PKLIST(PACKA) -
LEVEL -
ACQUIRE(ALLOCATE) -
ISOLATION (RS)
/*

  1. Cのトークンは何ですか?

    トークンは、コンパイラにとって意味のあるプログラムの最小要素に他なりません。プログラムを最小単位に分割するコンパイラはトークンと呼ばれ、これらのトークンはコンパイルのさまざまな段階に進みます。 タイプ トークンはさまざまなタイプに分類されます。以下に説明します- キーワード 識別子 定数 文字列 特別な記号 オペレーター 例 以下に示すのは、Cプログラムの識別子、キーワード、変数などの使用です。 。 #include <stdio.h> int main(){    int a,b,c;    printf("ente

  2. Cプログラムを機械語に変換する4つのステップは何ですか?

    プログラムの作成と実行のプロセス プログラムには、プログラミング言語で記述された一連の命令が含まれています。 プログラマーの仕事は、プログラムを作成してテストすることです。 「C」プログラムを機械語に変換する4つのステップは&miuns; プログラムの作成と編集 プログラムのコンパイル プログラムのリンク プログラムの実行 プログラムの作成と編集 「テキストエディタ」はプログラムの作成に使用されます。 テキストエディタを使用して、ユーザーは文字データを入力、変更、および保存できます。 多くの場合、すべての特別なテキストエディタがコンパイラに含まれて