【发布时间】:2017-02-27 22:15:16
【问题描述】:
我正在尝试使用存储过程将 JSON 格式的长字符串(即#jsonLayoutProperties#)插入到 MS SQL Server 表中。字符串可能很长,例如10,000 个字符+。我应该在存储过程中使用哪个cfsqltype? cf_sql_longvarchar 似乎是唯一的选择,似乎没有映射到 nvarchar(max) 的 cfsqltype。
我得到的错误如下。看来该字符串正在被截断。非常欢迎任何帮助。
错误:
执行数据库查询时出错。
[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>
【问题讨论】:
-
(编辑)如果您在SSMS中运行执行过程(具有相同的值),它是否执行成功? RE:似乎没有映射到 nvarchar(max) 的 cfsqltype 有,而且几乎是你猜到的:
cf_sql_longnvarchar(注意中间的“n”代表 n varchar)
标签: stored-procedures coldfusion sqldatatypes