スポンサードリンク

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク



スポンサードリンク

リンクサーバでOracleのVarchar2型を検索した際にエラー発生

ORACLE 9iからSQLServer2005にリンクサーバを使用してselectをすると、以下のエラーメッセージが現れた。

--エラーメッセージ--
メッセージ 7339、レベル 16、状態 1、行 1
リンク サーバー 'ORA' の OLE DB プロバイダ 'MSDAORA' から、列 '[MSDAORA].item_name' に無効なデータが返されました。


--実行したSQL--
SELECT *
FROM OPENQUERY( ORA,
'SELECT item_no, item_name FROM user1.tblA '
)


--テーブル情報--
リンクサーバ名:ORA
列名:item_no, item_name
スキーマ:user1
テーブル名:tblA


どうやらSQLServer2005になってデータチェック機能(トレースフラグ7307)が厳しくなったせいみたい

OracleのVarchar2→SQLServer2005のVarchar変換の際に、全角文字の間に半角スペースが入ってると問題らしい。
そして、この場合は、最後に空文字を付けるとエラーが出なくなる。

SQLServer自体の設定を変更してトレースフラグ7307を無効にする方法みあるみたいだが、てっとり早く解決するには問題となった列にブランクを結合させる。

SELECT *
FROM OPENQUERY( ORA,
'SELECT item_no, CONCAT(item_name, '''') as item_name FROM user1.tblA '
)

これで解決しました。

スポンサードリンク


テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

メールフォーム

ShoEngineer

Author:ShoEngineer

人気ブログランキングへ
↑↑クリックお願いします!

相互リンク歓迎(^_^)
以下からご連絡を!

名前:
メール:
本文:

スポンサード リンク
楽天
検索フォーム
Lc.ツリーカテゴリー
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。