【Oracle】DEFAULT付の項目にimpdpするとORA-38500が発生することに対するちょっとした愚痴


特定のテーブルAからデータをexpdpして、別スキーマにある同名テーブルAに、default付きの項目をaddしたA'をつくり、A→A'にimpdpすると、「ORA-38500: Unsupported operation: Oracle XML DB not present」というOracleエラーが発生する。
これが意味不明。
…っていう愚痴の記事。

どうも「dmpファイル側には存在しない項目をdefault付きでaddしたテーブルにはimpdpができない」ということでエラーになってるっぽいのだが、このエラーメッセージからは全くそれが連想できない。
「impdp ORA-38500」とかでググってもそれっぽい記事も出てこないので最初全くわからなかった。
なんとなく項目の違いがあるせいかもってのは疑いのネタにできたが、それにしたってこのエラーメッセージはわかりづらすぎる。
Oracle側の内部事情がいろいろあるんだろうが、もう少しわかりやすいメッセージにできなかったもんかね。
(まあOracleのエラーがわかりづらいのは今に始まったわけじゃないのでこれもその仲間というだけの話なのだけど)




【Java】OraclePrepaedStatementを使ったバインド変数設定方法について


バインド変数を用いたSQLにJavaから動的に値をセットする場合、
Oracleが用意している「OraclePreparedStatement」というのを使うことになる。
(どうもJava標準で用意されてるライブラリやクラス群にはバインド変数に公式に対応しているPreparedStatementは存在しないようだ)