2012-02-07 17 views
1

SQL Serverとキャッシュサーバーがあり、一部のデータを結合する必要があります。変数やパラメータで日付を渡そうとする場合を除いて、ほとんどすべての関数が機能しています。SQL Server Management Studioのクエリで、InterSystemsサーバーに日付が渡されません。

以下は私がテストしたものです(多くのうちの1つ)。

declare @myDate datetime 
set @myDate = convert(datetime,'2012-02-01',120) 

select * from ccms..dbo.dcdnstat where timestamp > '2012-02-01' -- WORKS 

exec('select * from dbo.dcdnstat where cdn = ?', 21004) at ccms -- WORKS 

exec('select * from dbo.dcdnstat where timestamp > ?',@myDate) at ccms -- ERROR 7213 

select * from ccms..dbo.dcdnstat where timestamp > @myDate -- ERROR 7322 

メッセージ7213、レベル16、状態1、行9 への提供者による試みは、リモートサーバーへのリモートストアドプロシージャのパラメータを渡す 'CCMS' に失敗しました。パラメータの数、順序、および渡された値が正しく設定されていることを確認します。メッセージ7322、レベル16、状態2、行11 OLE DBプロバイダ "MSDASQL"リンクサーバー "ccms"にパラメータ情報を渡している間、エラーが発生しました。

私は上記のように、変数を使って他のフィールドを照会でき、特定の値を使用すると日付を照会できます。

答えて

0

私は今日これに似た問題がありました。呼び出し側のサーバーとリンク先のサーバーが同じバージョンではなかったという事実と関係していました。 1つはSQL Server 2005で、もう1つはSQL Server 2008でした。この問題は、リモートエンド(2008年)で照会された列がdatetime2であり、呼び出し元サーバー(2005)がdatetime2をサポートしていないためです。

0

私はこれが少し遅れたことを知っていますが、私はそれに遭遇して、キャッシュシステムと同様のものを探しました。同じバックエンドシステムで作業しているようです。私のものはAvaya CCMSシステムです。ただ「DATE」限り、あなたが必要としないよう

を(使用、代わりにあなたのストアドプロシージャのパラメータのための「DATETIME」タイプの

DECLARE @myDate DATETIME 
SET @myDate = CAST('2012-07-01' AS DATETIME) 

SELECT SUM(CallsOffered), SUM(CallsAnswered), SUM(SkillsetAbandonedAftThreshold) 
FROM AvayaCCMS..dbo.mSkillsetStat 
WHERE Timestamp = @myDate 
0

:ここで私は、変数として日付を渡すために何をすべきかです時間要件)

0

Sybaseデータベースをリンクサーバーとして使用して、非常に似たようなことをしていました。 MobileMonが言ったように、私はdatetimeを今日まで変更することができました。今は正常に動作します。

declare @myDate date 
set @myDate = convert(datetime,'2012-02-01',120) 
関連する問題