埋め込みの説明
@1@ : ホスト変数名
例題
[SP8772.cob] 000001 IDENTIFICATION DIVISION. 000002 PROGRAM-ID. SP8772. 000003 DATA DIVISION. 000004 WORKING-STORAGE SECTION. 000005 EXEC SQL BEGIN DECLARE SECTION END-EXEC. 000006 01 STOCK-TABLE. 000007 02 PRDCTNUM PIC S9(4) COMP-5. 000008 02 PRDCTNAM PIC N(10). 000009 01 SQLSTATE PIC X(5). 000010 01 SQLMSG PIC X(128). 000011 01 VAR-IND1 PIC S9(4) COMP-5. 000012 01 SQLSTMT1 PIC X(500). 000013 01 SQLSTMT2 PIC S9(9) COMP-5. 000014 EXEC SQL END DECLARE SECTION END-EXEC. 000015 PROCEDURE DIVISION. 000016 MOVE "SELECT PNO FROM STOCK WHERE PNAME = ?" TO SQLSTMT1 000017 MOVE 9999 TO SQLSTMT2 000018 EXEC SQL PREPARE STM1 FROM :SQLSTMT2 END-EXEC 000019 EXEC SQL EXECUTE IMMEDIATE :SQLSTMT2 END-EXEC 000020 .
SP8772.cob 18: JMN2633I-S SQL文に誤りがあります.ODBC-8772E SQL文変数"SQLSTMT2"のデータ型は,文字型でなければなりません.
SP8772.cob 19: JMN2633I-S SQL文に誤りがあります.ODBC-8772E SQL文変数"SQLSTMT2"のデータ型は,文字型でなければなりません.
詳細な説明
該当する行のSQL文に以下の誤りが考えられます.
EXECUTE IMMEDIATE文のSQL文変数が、日本語項目であるか、または文字型ではない
PREPARE文のSQL文変数が、日本語項目であるか、または文字型ではない
SQL文変数は,データ型が英数字項目の固定長文字型または可変長文字型に対応するホスト変数でなければなりません.