Arv*_*ind 1 sql sql-server sql-server-2008
我试图在SQL Server 2008中执行以下SQL-
DECLARE @sql nvarchar, @fullname nvarchar;
SET @fullname='1patents_corrected.csv';
SET @sql = 'BULK INSERT GooglePatentsIndividualDec2012.dbo.patent from ' + @fullname+ ' WITH ( DATAFILETYPE = "char", FIELDTERMINATOR = "^", ROWTERMINATOR = "\n" );'
EXEC(@sql)
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误 -
Msg 2812,Level 16,State 62,Line 1
无法找到存储过程'B'.
我在这做错了什么?
更新 - 我更改了查询即.为每个varchar变量指定一个大小.现在代码是这样的 -
DECLARE @MyCounter int;
DECLARE @Fileprefix nvarchar(1000), @Filesuffix nvarchar(1000), @fullname nvarchar(1000), @Counter_string nvarchar(1000), @sql nvarchar(1000);
SET @MyCounter = 1;
SET @Fileprefix= 'C:\Arvind_gpd\patents\';
SET @Filesuffix='data_corrected.csv';
WHILE (@MyCounter < 10)
BEGIN;
Set @Counter_string= Cast(@MyCounter AS varchar(1) );
Set @fullname = (@Fileprefix+ @Counter_string + @Filesuffix );
SET @sql = 'BULK INSERT GooglePatentsIndividualDec2012.dbo.patent from ' + @fullname+
' WITH ( DATAFILETYPE = "char", FIELDTERMINATOR = "^", ROWTERMINATOR = "\n" );'
EXEC(@sql);
SET @MyCounter = @MyCounter + 1;
END;
GO
Run Code Online (Sandbox Code Playgroud)
但是我现在得到一个不同的错误 -
Msg 102, Level 15, State 1, Line 1
Run Code Online (Sandbox Code Playgroud)
'C:'附近的语法不正确.消息319,级别15,状态1,行1关键字'with'附近的语法不正确.如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则必须以分号终止先前的语句.
现在我做错了什么:(?
更改
DECLARE @sql nvarchar
Run Code Online (Sandbox Code Playgroud)
至
DECLARE @sql nvarchar(2000)
Run Code Online (Sandbox Code Playgroud)
默认情况下,大小为1
同样适用于@fullname nvarchar;给它一个尺寸
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |