Ms AccessDB を derby に変換 (または変換しようとしています) しています。
Access から特定の varchar / text / memo フィールドからデータを抽出すると、それらはアポストロフィ、数学記号 (パーセント、未満など)、および可能な外国文字で埋められます
これらを保持する必要があり、「エスケープシーケンス」を使用してデータベースに確実に格納できるようにテストします。
ただし、今のところ、これらのフィールドで失敗せずにデータを DB に取得することはできません。SQL が失敗すると、SQL 文字列を出力し、それを切り取り、ij に貼り付けます。次に、最初のレコードだけを変更します。いつもこれらの文字に悩まされます。
「二重引用符」で囲んで文字列を変更しようとしましたが、別のエラーが発生するだけです(常に二重引用符の最初の出現である「行1列x」に「enounderd ""」があることを示しています)。
文字列の動作を変更するためのダービーの設定はまだ見つかりません。ありますか?
また、SQLステートメントをpreparedStatementに設定しようとしましたが、{call PreparedStatement}を再度使用しましたが、これも失敗しました。{escape "escape char} を通常のステートメントで使用することはできません。derby は間違った構文を言っているだけだからです。
奇妙なキャラクターを含むユーザー コンテンツを derby のフィールドに入れるには、どうすればよいでしょうか? フィールドを CLOB または varchar / long Varchar 以外のものに変更する必要がありますか? 問題の原因は間違った文字セット (UTF-8 ではなく iso など) を使用したことですか?
以下は、ダービーに送信したときに失敗する SQL 挿入のサンプルです (私の Java 'プログラム' 経由)。
S1.SORTIEDESSAI (OBS, DATEDUSORTIE, CONTREINDIC, FIN, PDEVU, REFUS, INVDECISN, ADMIN, MOTIF_DE_LA_SORTIE, NOMVALIDEE, DATEVALIDEE) 値 ('"0001/0001"' , '2007-07-15' , false , true , '"null"' , '"null"' , '"null"' , '"null"' , '"2.FIN DE L'ESSAI"' , '"DR SIMON"' , '2011-04-19' )
注: 実際に上記を見て、列名の順序が正しくないことに気付きましたか? 昨日は大丈夫だったのに、なぜ変わったのかわからない?Access が resultSetMetaData からランダムな順序で列名を返すことと関係がありますが、これは驚くべきことです。
今のところ、この問題を整理している間、それ以上の回答は保留することをお勧めします。問題は解決しました。この動作について別の質問を設定する必要がありますか... メインスレッドに戻る...
SQL ステートメントでわかるように、varchar フィールドを二重引用符で囲みました。これは常に失敗します (ij を直接介しても)。助けて助けて…