Just to be more specific for SQLCODE=-302
C:\>db2 ? sql00302
SQL0302N The value of a host variable in the EXECUTE or OPEN statement
is out of range for its corresponding use.
Explanation:
The value of an input host variable was found to be out of range for its
use in the SELECT, VALUES, or prepared statement.
One of the following occurred:
* The corresponding host variable or parameter marker used in the SQL
statement is defined as string, but the input host variable contains
a string that is too long.
* The corresponding host variable or parameter marker used in the SQL
statement is defined as numeric, but the input host variable contains
a numeric value that is out of range.
* The terminating NUL character is missing from the C language
NUL-terminated character string host variable.
* Federated system users: in a pass-through session, a data
source-specific restriction might have been violated.
This error occurs as a result of specifying either an incorrect host
variable or an incorrect SQLLEN value in an SQLDA on an EXECUTE or OPEN
statement.
The statement cannot be processed.
User response:
Ensure that the input host variable value is the correct type and
length.
If the input host variables supply values to parameter markers, match
values with the implied data type and length of the parameter marker.
Federated system users: for a pass-through session, determine what data
source is causing the error.
Examine the SQL dialect for that data source to determine which specific
restriction has been violated, and adjust the failing statement as
needed.
sqlcode: -302
sqlstate: 22001, 22003
Related information:
Troubleshooting data source connection errors
------------------------------
Jan Nelken
Db2 (LUW) DBA
Open for work
Katowice or Krakow
+48 783 109 863
------------------------------
Original Message:
Sent: Fri December 19, 2025 03:46 PM
From: Mark Barinstein
Subject: DB2 SQL Error: SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null, DRIVER=4.19.66
SQL0302N is about wrong variable data type / length use in the application logic.
https://www.ibm.com/docs/en/db2/12.1.x?topic=messages-sql0000-0999
One of the following occurred:
The corresponding host variable or parameter marker used in the SQL statement is defined as string, but the input host variable contains a string that is too long.
The corresponding host variable or parameter marker used in the SQL statement is defined as numeric, but the input host variable contains a numeric value that is out of range.
The terminating NUL character is missing from the C language NUL-terminated character string host variable.
Consider the following example, when you declare a parameter maker of BLOB(10) data type (10 bytes) and try to set it to a value of larger length (11 bytes):
BEGIN
DECLARE l_len INT;
PREPARE S1 FROM 'SET ? = ( SELECT LENGTH(B) FROM (VALUES ?::BLOB(10)) T(B) )';
-- repeat(bx'01', 10) use doesn't lead to SQLCODE=-302
EXECUTE S1 INTO l_len USING repeat(bx'01', 11); -- <-- You get SQLCODE=-302 here
END
It's hard to explain how some blob table column length increase could help to avoid such an error unless it's some unknown application specific, which nobody here is probable aware of...
------------------------------
Mark Barinstein
------------------------------