WordPress
がダウンロードできるようにするファイル(実質的にバックアップコピー)をXML
ファイルに格納するプログラムを開発しています。この時点で OPENROWSET:sp_executesql文が@paramで失敗する
SQL Server
に私のデータを頻繁にバックアップを許可するようにプロセスを自動化し、何らかの理由で私は
XML
ファイルが置かれます
OPENROWSET
を実行するクエリの開発を立ち往生しています。
DECLARE @SQL NVARCHAR(MAX)
DECLARE @ParamDefinition NVARCHAR(500) = N'@fstring NVARCHAR(MAX)'
DECLARE @string VARCHAR(MAX) =
N'C:\[FilePath]\Reviews\thehesperian2016-07-29.xml'
SET @SQL =
N'INSERT INTO #Temp (Extract_Date, XMLDATA)
SELECT GETDATE()
, A.*
FROM OPENROWSET(BULK @fstring, SINGLE_BLOB, CODEPAGE = ' + '''RAW''' + ') AS A'
EXEC sp_executesql @SQL
, @ParamDefinition
, @fstring = @string
エラー:私は述語で、テーブル上の単純なクエリにこれを回すことができるので、私はそれを疑うに足りる理由がある
Msg 102, Level 15, State 1, Line 4
Incorrect syntax near '@fstring'.
はfilepath
が読まれる方法です。 私はなぜこれが間違っているのか理解しようとしている私の脳を苦労して数時間を費やしました。私はBULKINSERTにこのexampleのようにQUOTENAME
を使用することもできますが、私は
どうか、なぜ私は、これは間違っているのでしょうか?(これはまだsp_executesql
を使用)、動的SQLでそのすべてを埋め込むために期待していましたかどんな助けでも大歓迎です。 - よろしく、
OPENROWSET - MSDNは、独自の段落で宣言し
ANSWER:私はとにかくいくつかのマイナーなREPLACE
機能を実行しなかったが
OPENROWSET does not accept variables for its arguments.
QUOTENAME
、十分です。
動的SQLでは、@fstringは変数ではなくリテラルとして認識されています。 – scsimon
@scsimon right、procパラメータでfstringを呼び出すのを忘れてしまったので、SQL Serverはどのように理解しているのか推測するべきではありません。 –
動的SQLの場合、+ '' '@var' "'+を指定してConcatする必要がありますが、OPENROWSET内にあるかどうか不明です。私はそれがうまくいくとは思わない – scsimon