SSIS 开发人员表达式

SSIS Developer expressions

我想使用一个表达式创建一个 SSIS 变量,在该表达式中我将存储过程中的脚本用于变量中。我想在 运行 时将文件名和位置解析到脚本中,因此我正在这样做。

我的代码如下:

DECLARE @Cardholder VARCHAR(MAX)


SELECT @Cardholder = BULKCOLUMN
FROM OPENROWSET(BULK' + @[User::CARDHOLDER] +', SINGLE_BLOB) JSON

SELECT DELIVERY_METHOD, CURRENCY_CODE, COUNTRY, MOBILE, LAST_MODIFIED_DATE, EMAIL, LAST_NAME, CREATE_DATE, FIRST_NAME, ID
FROM OPENJSON(@Cardholder, '$.CardHolder')


WITH(
    DELIVERY_METHOD varchar(255) '$.delivery_method',
    CURRENCY_CODE varchar(255) '$.currency_code',
    COUNTRY varchar(255) '$.country',
    MOBILE varchar(20) '$.mobile',
    LAST_MODIFIED_DATE datetime '$.last_modified_date',
    EMAIL   varchar(255) '$.email',
    LAST_NAME   varchar(255) '$.last_name',
    CREATE_DATE datetime '$.create_date',
    FIRST_NAME varchar(255) '$.first_name',
    ID  bigint  '$.id'
)

我收到以下错误:

Expression cannot be evaluated

我认为您的报价有问题,请尝试使用以下表达式:

"DECLARE @Cardholder VARCHAR(MAX)


SELECT @Cardholder = BULKCOLUMN
FROM OPENROWSET(BULK'"  + @[User::CARDHOLDER] + "', SINGLE_BLOB) JSON

SELECT DELIVERY_METHOD, CURRENCY_CODE, COUNTRY, MOBILE, LAST_MODIFIED_DATE, EMAIL, LAST_NAME, CREATE_DATE, FIRST_NAME, ID
FROM OPENJSON(@Cardholder, '$.CardHolder')


WITH(
    DELIVERY_METHOD varchar(255) '$.delivery_method',
    CURRENCY_CODE varchar(255) '$.currency_code',
    COUNTRY varchar(255) '$.country',
    MOBILE varchar(20) '$.mobile',
    LAST_MODIFIED_DATE datetime '$.last_modified_date',
    EMAIL   varchar(255) '$.email',
    LAST_NAME   varchar(255) '$.last_name',
    CREATE_DATE datetime '$.create_date',
    FIRST_NAME varchar(255) '$.first_name',
    ID  bigint  '$.id'
)"

并确保变量的数据类型是String