插入长字符串的SQL Server存储过程错误:字符串后面的未闭合引号

时间:2016-10-18 14:56:16

标签: stored-procedures coldfusion sqldatatypes

我试图使用存储过程将JSON格式的长字符串(即#jsonLayoutProperties#)插入到MS SQL Server表中。字符串可能很长,例如10,000个字符+。我应该在存储过程中使用哪个cfsqltypecf_sql_longvarchar似乎是唯一的选择,似乎没有cfsqltype映射到nvarchar(max)

我得到的错误如下。看来字符串被截断了。任何帮助都会非常受欢迎。

错误:

  

执行数据库查询时出错。

     

[Macromedia] [SQLServer JDBC驱动程序] [SQLServer]未闭合的引号   在字符串之后。

CFSTOREDPROC:

<cfstoredproc datasource="docs" procedure="UpdateLayout">
    <cfprocparam cfsqltype="cf_sql_varchar" type="in" value="#Session.Userdata['ID']#">                 <!--- @AccountID --->
    <cfprocparam cfsqltype="cf_sql_integer" type="in" value="#ObjectID#">                               <!--- @ObjectID --->
    <cfprocparam cfsqltype="cf_sql_longvarchar" type="in" value="#jsonLayoutProperties#">               <!--- @Properties --->
    <cfprocparam cfsqltype="cf_sql_varchar" type="in" value="0">                                        <!--- @Revision --->
    <cfprocparam cfsqltype="cf_sql_integer" type="in" value="#Session.Userdata['ID']#">                 <!--- @UpdatedID --->
    <cfprocparam cfsqltype="cf_sql_integer" type="inout" value="0" variable="LayoutID">                 <!--- @ID --->
</cfstoredproc>

1 个答案:

答案 0 :(得分:0)

这可能不是类型问题。

Unclosed quotation mark after the character string.

对我来说意味着你的字符串中可以有未转义的引号。你能看看吗?