次の方法で共有

クエリ内の Trim 関数について

Anonymous
2017-04-20T07:05:31+00:00

少し不思議な現象が起きたので、ご存じの方がいらっしゃいましたら教えてください。

 Access 2010 で、Oracle のデータをリンクテーブルで設定し、ローカルのテーブルに出力する追加クエリがあります。

 Oracle側のデータが空白 4 個(0x20 0x20 0x20 0x20)のフィールドを、Trimをかまし、ローカルの 値要求いいえ、空文字列の許可いいえのフィールドに出力しようとしました。(空白4個はVBAでコーディングし、確認しました。)

あるmdbは成功するのに、あるmdbは失敗します(入力規則違反)

 追加クエリの Select 部分のみを vbaでDAO経由で参照したところ、Trim([FieldName])の結果が、

 成功したほうは Null、失敗したほうは長さ0の空文字列が返されていました。

 成功するほうのmdbはかなり前に作成されたもので、それをコピーして失敗してしまうmdbを作成しています。


 (追記) 失敗するほうのmdbのリンクテーブルは、新しく作成しました。

 リンクテーブルのフィールドサイズが成功するほうは テキスト型(8)、失敗する法は テキスト型(4)となっていました。


 この2つのmdbの差がどうしてもわかりません。

 何か、このあたり調べてみたらなど、些細なことで構いませんので、お気づきの点がございましたら、

 ご教示、お願い致します。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-04-21T00:16:31+00:00

    自己レスですみません。

     ODBCのログを参照したところ、成功するほうはOracleに対してTrimをかけている、失敗するほうはOracleに対してTrimをかけていないことが判明しました。

     成功: SELECT ... , {fn ltrim({fn rtrim("[FieldName]" )})}, ... From [TableName]

     失敗: SELECT ... , "[FieldName]", ... From [TableName]

     失敗するほうは、受け取ったデータに対して内部的にTrimをかけて表示しているのではないかと推測できます。

     細かい条件などまで提示することができないのですが、残りの問題はSQL文中で使用されている半角カナ文字、フィールド名の日本語、長文SQLなどなどあるのかなと思います。

     引き続き調べて、何かわかり次第追記していきたいと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません