OracleDBからopenqueryで取得するデータがかける

Category: sql server sqlserver_ja

Question

Book5 on Sat, 07 Sep 2019 05:08:33


DB:Microsoft SQL Server 2014

OS:WindowsServer2012R2

リンクサーバ: Oracle12c

以下のようなSQLでデータ取得をしています。

一部のデータのみ①のパターンではデータ取得ができるのですが、
②のパターンではデータ取得ができません。

また、①でもWhere条件を外して、取得結果のデータを見ると、取得できていません。

データは、リンク先のテーブル上に存在しています。
一部のデータのみ発生しており、取得できないデータに違いがないため、理由が分からず、質問させていただきました。

-------------

SELECT *  FROM OPENQUERY (リンクサーバ名,
    'SELECT
     t.*
    FROM リンク先テーブル名 t
    WHERE TO_CHAR(t.a_date,''YYYY/MM/DD'')>TO_CHAR(SYSDATE-90,''YYYY/MM/DD'')
 AND t.a_NO=''111111''
 ') t


SELECT *  FROM OPENQUERY (リンクサーバ名,
    'SELECT
     t.*
    FROM リンク先テーブル名 t
    WHERE TO_CHAR(t.a_date,''YYYY/MM/DD'')>TO_CHAR(SYSDATE-90,''YYYY/MM/DD'')
 ') t
WHERE t.a_NO='111111'

-------------

どのようにすれば解決できますでしょうか?
方法を教えていただければ幸いです。

よろしくお願いいたします。

Replies

Haruka6002 on Thu, 12 Sep 2019 01:42:36


Book5さん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。

パターン①でデータの一部を取得できますので、データアクセスは正常だと思われます。 何かのエラーメッセージはありますでしょうか。

私の知る限り、OPENQUERYは行の数を制限しません。 
問題がOraOLEDBに関連している可能性があると思われます。 
検索したところ、ある記事に、100がOracleクライアントのデフォルトのフェッチサイズであることが示されているように、レジストリ/プロバイダー文字列を使用してそれを増やすことができます。 
詳細については、https://docs.oracle.com/cd/E11882_01/win.112/e17726/using.htm#OLEDB150をご参照してください。

OraOLEDBについて質問がある場合は、対応するフォーラムに問題を投稿してください。

Oracle Communities 

 どうぞよろしくお願いします。

MSDN/ TechNet Community Support Haruka

~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~