1

我在正确格式化@p_f_field 变量时遇到以下问题,我收到错误消息:

Could not execute statement.
Incorrect syntax near ‘+’
Sybase error code=102, SQLState=”42000”
Severity Level=15, State=181, Transaction State=1
Line 7

我的存储过程:

create proc dbo.sp_m_efi_dw_full_dsa_table_load_im ( -- parameter examples:
@p_skm_name varchar(4096),
@p_usr_name varchar(4096),
@p_t_name_dsa varchar(4096),
@p_t_name_bas varchar(4096),
@p_f_name varchar(4096),
@p_f_field varchar(4096)
)
as begin
declare @sql varchar(4096)
if @p_skm_name is not null
begin
if @p_usr_name is not null
begin
set @sql='TRUNCATE TABLE '+@p_skm_name+'.'+@p_usr_name+'.'+@p_t_name_dsa
exec (@sql)
end
end
set @sql='INSERT INTO '+@p_skm_name+'.'+@p_usr_name+'.'+@p_t_name_dsa+' '+@p_f_name+
' VALUES '+@p_f_field
exec (@sql)
end

我对存储过程的调用:

execute BAS_efi.dbo.sp_m_efi_dw_full_dsa_table_load_im
@p_skm_name         = 'B_ef',
@p_usr_name         = 'dbo',
@p_t_name_dsa       = 'a_log',
@p_t_name_bas       = 'a_log',
@p_f_name           = '(NEWFIELD1)',
@p_f_field          = '('+char(39)+'daf9af01-6bc2-11e-b23182b0623e'+char(39)+')'

关于如何正确格式化变量@p_f_field 的任何建议,或关于如何执行这个简单的 INSERT INTO 过程的任何其他建议?

4

0 回答 0