SQLExceptionのサブクラスDataTruncation(データが切り捨てられた場合の例外)がスローされるため、
JDBCドライバの接続のURLで
jdbc:mysql://localhost/dbname?jdbcCompliantTruncation=false
(?以降の部分)
とすることで、例外を発生させないようにしていましたが、Oracle+Javaではどうすればよいのでしょうか。
MySQL+PHPのときはエラーは出ずに当たり前のようにデータ切り捨てられながらINSERTされると記憶しているのですが、
そもそもOracleでもMySQL+Javaのように例外が発生するものなのでしょうか。
(試せば済む話ですが、職場はDB操作が本番環境しかありません。)
また、仮に例外が発生しても、(データは切り捨てられつつも)INSERTは実行されているのでしょうか。
エラーは出ずに当たり前のようにデータ切り捨てられながらINSERTされる
これ、MySQL だけの特殊仕様です。性能と引き換えの。
なので、他のDBではまずこういった動作にはなりません。
直接試してないので、Exception の種類は忘れましたが、Oracle に限らず制限長を超えるデータは
INSERT or UPDATE 出来ません。
Exception が出る&実際にも INSERT or UPDATE 出来ないです。