0

T-SQL/SQL を使用してファイル (.txt) からデータを読み込もうとしています。そのデータをインポートすることはできますが、要件の 1 つは、ファイルの場所をテーブル内のテーブルから取得する必要があることです。 DB。以下は私が持っているスクリプトです。

ALTER PROCEDURE [dbo].[sp_BULK_IMPORT]

@i_CUSTOMERID VARCHAR(10)
, @CFG_KEY VARCHAR(25)

AS              

DECLARE
    @DATE DATETIME
    , @WHO VARCHAR(20)
    , @CFG_VALUE VARCHAR(500)


SET @DATE = GETDATE()
SET @WHO = SYSTEM_USER


--Check for NULL CustomerID
IF ISNULL(@i_CUSTOMERID, '') = ''
    BEGIN
        SET @i_CUSTOMERID = '0'
    END

--Get File Directory for I9
SELECT @CFG_VALUE = sys_value FROM SYS_CONFIG(NOLOCK) WHERE sys_code = @CFG_KEY AND sys_customerid = @i_CUSTOMERID


/*GET DATE FROM FILE*/
BULK INSERT IMPORTED_DATA
FROM 'C:\File_Import\Import\I900000001.txt'
WITH
(
    ROWTERMINATOR = ';\n',
    CHECK_CONSTRAINTS
)

「C:\File_Import\Import」を、システムの構成に基づく値である変数 @CFG_VALUE に置き換えたいと考えています。これを行うと、エラーが発生します。

EXPECTING ID, INTEGER, QUOTED_ID, STRING, or TEXT_LEX

どんな助けでも大歓迎です。

4

1 に答える 1

0

あなたがこのようにしたいことを願っています

DECLARE @CreateSql varchar(max);
--or DECLARE @CreateSql varchar(x);

SET @CreateSql = 'BULK INSERT IMPORTED_DATA
FROM '+@CFG_VALUE+'  
WITH
(
    ROWTERMINATOR = ';',
    CHECK_CONSTRAINTS
)';

EXEC (@CreateSql);
于 2013-07-20T03:47:40.030 に答える