Не думаю, что это имеет какое-либо отношение к SYSPRINT или SYSIN.
Я думаю, что вы получаете TSO RC = 1, а не SQLCODE = 1 (потому что SQLCODE не равен 1.
1 - предупреждение, -1 - ошибка. Вы можете посмотреть это в Программе прикладных программ DB2.
и руководство по SQL
Включите TRACE R и запустите его.
Существуют переменные (показанные ниже), которые отображают информацию об ошибке / предупреждении.
22 *-* ADDRESS DSNREXX "EXECSQL OPEN C1"
>>> "EXECSQL OPEN C1"
+++ RC(1) +++
23 *-* IF SQLCODE <> 0
28 *-* SAY 'SQLSTATE='sqlstate', SQLERRMC='sqlerrmc', SQLERRP='sqlerrp
SQLSTATE = 00000, SQLERRMC =, SQLERRP = DSN
29 - SAY 'SQLERRD =' sqlerrd.1 ',' sqlerrd.2 ',' sqlerrd.3 ',' sqlerrd.4 ',',
sqlerrd.5 ',' sqlerrd.6
SQLERRD = 0, 0, 0, -1, 0, 0
32 - SAY 'SQLWARN =' sqlwarn.0 ',' sqlwarn.1 ',' sqlwarn.2 ',' sqlwarn.3 ',',
sqlwarn.4 ',' sqlwarn.5 ',' sqlwarn.6 ',' sqlwarn.7 ',',
sqlwarn.8 ',' sqlwarn.9 ',' sqlwarn.10
SQLWARN =, N,,,, 2,,,,,
Например, может случиться так, что, когда оба используются вместе, недостаточно памяти.