Adaptive Server Anywhereにデフォルトオプションがあるのですが、JDBCを使う場合は注意が必要です。通常のデフォルトオプションとは別に、JDBC接続中に限り上書きされるデフォルトオプションがあるからです。
Adaptive Server Enterpriseとの互換性のためだそうですが、知らないとはまります。つまり、知らなかったので、はまりました(正直、こういう仕様は人心を惑わすので、やめて欲しいです。だって、「デフォルト」じゃないじゃん。せめて、JDBC_xxx_OPTIONみたいに、上書きではなく、デフォルトオプションの中に組み込んで欲しい)。例えば、CREATE TABLEするとき、カラムのNULL制約は、通常NULL可です。しかし、JDBCの場合は、NOT NULLになります。
このJDBCデフォルトオプションを変えるには、次のようなスクリプトを実行します。
CREATE PROCEDURE my_startup_procedure()
BEGIN
IF connection_property('CommProtocol')='TDS' THEN
SET TEMPORARY OPTION ALLOW_NULLS_BY_DEFAULT='ON';
END IF
END;
SET OPTION LOGIN_PROCEDURE= 'DBA.my_startup_procedure';
commit;