SQL Server 2017
下記の通りストアドプロシージャを利用し、csvファイルをBCPで出力しようと考えています。
@開始日 datetime, @終了日 datetime AS DECLARE @file [nvarchar](1000) SET @file = ' bcp "SELECT * FROM ビューA WHERE 年月日 >= @開始日 AND 年月日 <= @終了日 AND 区分 = 1 ORDER BY 年月日" queryout C:\AA.csv -c -t, -r\n' EXEC master..xp_cmdshell @file
これでは「BCPコピーoutが失敗しました」とエラーメッセージが表示されます。
一方、年月日の範囲を指定する部分を除いて下記の通り記載するとBCPコピーは成功します。
DECLARE @file [nvarchar](1000) SET @file = ' bcp "SELECT * FROM ビューA WHERE 区分 = 1 ORDER BY 年月日" queryout C:\AA.csv -c -t, -r\n' EXEC master..xp_cmdshell @file
念のためにSELECT文を一番下に記載すると(BCPコピーは失敗しますが)狙い通りの結果が表示されます。
DECLARE @file [nvarchar](1000) SET @file = ' bcp "SELECT * FROM ビューA WHERE 年月日 >= @開始日 AND 年月日 <= @終了日 AND 区分 = 1 ORDER BY 年月日" queryout C:\AA.csv -c -t, -r\n' EXEC master..xp_cmdshell @file SELECT * FROM ビューA WHERE 年月日 >= @開始日 AND 年月日 <= @終了日 AND 区分 = 1 ORDER BY 年月日
どこの部分を正しく記載すればよいのでしょうか。ご教示ねがいます。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。