Description of SQLCA fields
For the most part, COBOL, C, PL/I, and assembler use the same names for the SQLCA fields, and Fortran uses different names. However, there is one instance where C, PL/I, and assembler names differ from COBOL.
The names in the following table are those provided by the SQL INCLUDE statement.
assembler,
COBOL, or PL/I Name |
C Name |
Fortran Name |
Data type |
Purpose |
---|---|---|---|---|
SQLCAID | sqlcaid | Not used. | CHAR(8) | An "eye catcher" for storage dumps, containing the text 'SQLCA'. The sixth byte is 'L' if line number information is returned from parsing a dynamic statement or a native SQL procedure. The sixth byte is not set when processing an external SQL procedure. |
SQLCABC | sqlcabc | Not used. | INTEGER | Contains the length of the SQLCA: 136. |
SQLCODE (See note 1) | SQLCODE | SQLCOD | INTEGER | Contains the SQL return
code. (See note 2)
|
SQLERRML
(See note 3) |
sqlerrml
(See note 3) |
SQLTXL | SMALLINT | Length indicator for SQLERRMC, in the range 0 through 70. 0 means that the value of SQLERRMC is not pertinent. |
SQLERRMC
(See note 3) |
sqlerrmc
(See note 3) |
SQLTXT | VARCHAR(70) | Contains one or more tokens, separated by X'FF', that are substituted for variables in the descriptions of error conditions. It may contain truncated tokens. A message length of 70 bytes indicates a possible truncation. |
SQLERRP | sqlerrp | SQLERP | CHAR(8) | Provides a product signature and, in the case of an error, diagnostic information such as the name of the module that detected the error. In all cases, the first three characters are 'DSN' for DB2® for z/OS®. |
SQLERRD(1) | sqlerrd[0] | SQLERR(1) | INTEGER | For a sensitive static
cursor, contains the number of rows in a result table when the
cursor position is after the last row (that is, when SQLCODE is equal
to +100). On successful return from an SQL procedure, contains the return status value from the SQL procedure. SQLERRD(1) can also contain an internal error code. |
SQLERRD(2) | sqlerrd[1] | SQLERR(2) | INTEGER | For a sensitive static
cursor, contains the number of rows in a result table when the
cursor position is after the last row (that is, when SQLCODE is equal
to +100). SQLERRD(2) can also contain an internal error code. |
SQLERRD(3) | sqlerrd[2] | SQLERR(3) | INTEGER | Contains
the number of rows that qualified to be deleted, inserted, or updated
after a DELETE, INSERT, UPDATE, or MERGE statement. The
number excludes rows affected by triggers, referential integrity constraints,
or inserted rows that are the result of processing a FOR PORTION OF
clause for a BUSINESS_TIME period. For the OPEN of a cursor for a SELECT with a data
change statement or for a SELECT INTO, SQLERRD(3) contains the number
of rows affected by the embedded data change statement. The value
is 0 if the SQL statement fails, indicating that all changes made
in executing the statement canceled. For a DELETE statement the value will be -1 if the operation is a mass delete from a table in a segmented table space and the DELETE statement did not include selection criteria. If the delete was against a view, neither the DELETE statement nor the definition of the view included selection criteria. For a TRUNCATE statement, the value will be -1. For a PREPARE statement, contains the estimated number of rows selected. If the number of rows is greater than 2 147 483 647, a value of 2 147 483 647 is returned. For a REFRESH TABLE statement, SQLERRD(3) contains the number of rows inserted into the materialized query table. For a rowset-oriented FETCH, contains the number of rows fetched. For SQLCODES -911 and -913, SQLERRD(3) contains the reason code for the timeout or deadlock. When an error is encountered in parsing a dynamic statement, or when parsing, binding, or executing a native SQL procedure, SQLERRD(3) will contain the line number where the error was encountered. The sixth byte of SQLCAID must be 'L' for this to be a valid line number. This value will be meaningful only if the statement source contains new line control characters. This information is not returned for an external SQL procedure. |
SQLERRD(4) | sqlerrd[3] | SQLERR(4) | INTEGER | Generally, contains timerons, a short floating-point value that indicates a rough relative estimate of resources required (See note 4). It does not reflect an estimate of the time required. When preparing a dynamically defined SQL statement, you can use this field as an indicator of the relative cost of the prepared SQL statement. For a particular statement, this number can vary with changes to the statistics in the catalog. It is also subject to change between releases of DB2 for z/OS. |
SQLERRD(5) | sqlerrd[4] | SQLERR(5) | INTEGER | Contains the position or column of a syntax error for a PREPARE or EXECUTE IMMEDIATE statement. |
SQLERRD(6) | sqlerrd[5] | SQLERR(6) | INTEGER | Contains an internal error code. |
SQLWARN0 | SQLWARN0 | SQLWRN(0) | CHAR(1) | Contains a blank if no other indicator is set to a warning condition (that is, no other indicator contains a W or Z). Contains a W if at least one other indicator contains a W or Z. |
SQLWARN1 | SQLWARN1 | SQLWRN(1) | CHAR(1) | Contains a W if the value of a string column was truncated when assigned to a host variable. Contains an N for non-scrollable cursors and S for scrollable cursors after the OPEN CURSOR or ALLOCATE CURSOR statement. If subsystem parameter DISABSCL is set to YES, the field will not be set to N for non-scrollable cursors. |
SQLWARN2 | SQLWARN2 | SQLWRN(2) | CHAR(1) | Contains a W if null values were eliminated from the argument of an aggregate function; not necessarily set to W for the MIN function because its results are not dependent on the elimination of null values. |
SQLWARN3 | SQLWARN3 | SQLWRN(3) | CHAR(1) | Contains a W if the number of result columns is larger than the number of host variables. Contains a Z if fewer locators were provided in the ASSOCIATE LOCATORS statement than the stored procedure returned. |
SQLWARN4 | SQLWARN4 | SQLWRN(4) | CHAR(1) | Contains a W if a prepared UPDATE or DELETE statement does not include a WHERE clause. For a scrollable cursor, contains a D for sensitive dynamic cursors, I for insensitive cursors, and S for sensitive static cursors after the OPEN CURSOR or ALLOCATE CURSOR statement; blank if cursor is not scrollable. If subsystem parameter DISABSCL is set to YES, the field will not be set with information about cursor sensitivity. |
SQLWARN5 | SQLWARN5 | SQLWRN(5) | CHAR(1) | Contains a W if the SQL statement was not executed because it is not a valid SQL statement in DB2 for z/OS. Contains a character value of 1 (read only), 2 (read and delete), or 4 (read, delete, and update) to reflect capability of the cursor after the OPEN CURSOR or ALLOCATE CURSOR statement. If subsystem parameter DISABSCL is set to YES, the field will not be set with information about the capability of the cursor. |
SQLWARN6 | SQLWARN6 | SQLWRN(6) | CHAR(1) | Contains a W if the addition of a month or year duration to a DATE or TIMESTAMP value results in an invalid day (for example, June 31). Indicates that the value of the day was changed to the last day of the month to make the result valid. |
SQLWARN7 | SQLWARN7 | SQLWRN(7) | CHAR(1) | Contains a W if one or more nonzero digits were eliminated from the fractional part of a number used as the operand of a decimal multiply or divide operation. |
SQLWARN8 | SQLWARN8 | SQLWRX(1) | CHAR(1) | Contains a W if a character that could not be converted was replaced with a substitute character. Contains a Y if there was an unsuccessful attempt to establish a trusted connection. |
SQLWARN9 | SQLWARN9 | SQLWRX(2) | CHAR(1) | Contains a W if arithmetic exceptions were ignored during COUNT or COUNT_BIG processing. Contains a Z if the stored procedure returned multiple result sets. |
SQLWARNA | SQLWARNA | SQLWRX(3) | CHAR(1) | Contains a W if at least one character field of the SQLCA or the SQLDA names or labels is invalid due to a character conversion error. |
SQLSTATE | sqlstate | SQLSTT | CHAR(5) | Contains a return code for the outcome of the most recent execution of an SQL statement (See note 5). |
Notes:
|