0

これはT-SQLで機能しています

provaxmlに挿入(arquivo)

sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N'C:\2012-09\myfile.xml', SINGLE_BLOB)as arquivo

プロシージャを書き込もうとしているim:

alter proc adentro (@nome nvarchar(max))as
insert into provaxml  (arquivo)
sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N'C:\2012-09\myfile.xml', SINGLE_BLOB)as arquivo 

変数@nomeでファイル名を変更するには、どのように書く必要がありますか?この方法を試しましたが、機能しません

 alter proc adentro (@nome nvarchar(max))as
insert into provaxml  (arquivo)
sELECT  CAST(BulkColumn AS XML) FROM OPENROWSET(BULK N @nome, SINGLE_BLOB)as arquivo 

前もって感謝します

アレハンドロ

4

2 に答える 2

1

このようなことを試してください...(昨日同様のクエリにこの手法を使用しました)

DECLARE @sql varchar(4000);
SET @sql = 'INSERT INTO provaxml (arquivo) SELECT CAST(BulkColumn AS XML) FROM OPENROWSET(BULK ''' + @nome + ''', SINGLE_BLOB) as arquivo';

EXEC( @sql );

これをカーソルの中にラップして(私はカーソルを使用するのは悪い子ですが、これは良い使い方だと思います)、反復ごとに異なるファイル名を変数に入力できるようにしました。 。

于 2012-10-05T19:17:32.243 に答える
0

おかげでDeadZone私はこのコードで書いていて働いています

ALTER proc [dbo]。[adenti](@entra nvarchar(max))as DECLARE @sql varchar(4000); SET @sql ='INSERT INTO provaxml(arquivo)SELECT CAST(BulkColumn AS XML)FROM OPENROWSET(BULK''' + @entra +'''、SINGLE_BLOB)as arquivo'; EXEC(@sql);

于 2012-10-05T20:34:38.713 に答える