标签: ntext

NHibernate nvarchar/ntext截断问题

我正在使用nhibernate为SQL Server Compact Edition表中的应用程序存储一些用户设置.

这是映射文件的摘录:

<property name="Name" type="string" />
<property name="Value" type="string" />
Run Code Online (Sandbox Code Playgroud)

Name是常规字符串/ nvarchar(50),Value在DB中设置为ntext

我正在尝试将大量xml写入"Value"属性.我每次都得到一个例外:

@p1 : String truncation: max=4000, len=35287, value='<lots of xml..../>'
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了一下,并尝试了许多不同的映射配置:

<property name="Name" type="string" />
<property name="Value" type="string" >
  <column name="Value" sql-type="StringClob" />
</property>
Run Code Online (Sandbox Code Playgroud)

这是一个例子.其他配置包括"ntext"而不是"StringClob".那些不抛出映射异常的配置仍会抛出字符串截断异常.

这是SQL CE的问题("功能")吗?是否可以使用nhibernate将超过4000个字符放入SQL CE数据库?如果是这样,谁能告诉我怎么样?

非常感谢!

nhibernate truncate ntext sql-server-ce

4
推荐指数
1
解决办法
6467
查看次数

替换sql server 2000中的ntext(超过4000个字符)

如何替换sql server 2000中ntext列中超过4000个字符的文本?转换为 nvarchar(max) 不起作用,因为它会截断值。

sql-server replace sql-server-2000 ntext

4
推荐指数
1
解决办法
5092
查看次数

DBI:bind_param将字符串强制转换为ntext - > nvarchar(max)和ntext不兼容

我有一个关于perl DBI的bind_param的问题.以下SQL工作原理:

my $sth = $dbh->prepare("SELECT id FROM table WHERE id = 'string'");
$sth->execute();
Run Code Online (Sandbox Code Playgroud)

虽然以下不是:

my $sth = $dbh->prepare("SELECT id FROM table WHERE id = ?");
$sth->execute('string');
Run Code Online (Sandbox Code Playgroud)

上次查询导致的错误是[ODBC SQL Server Driver][SQL Server]The data types nvarchar(max) and ntext are incompatible in the equal to operator. (SQL-42000).

似乎是bind_param,被调用execute,将'string'强制转换为ntext.我该如何解决这个问题?

sql perl ntext sqlbindparameter dbi

4
推荐指数
1
解决办法
912
查看次数

“参数数据类型 ntext 对于 len 函数的参数 1 无效”错误

我正在使用实体框架,并编写此代码以从数据库获取一些结果:

ReviewsDBEntities DB = new ReviewsDBEntities();  
var result=DB.Review.Where(r => r.ReviewText.Length > 200);
Run Code Online (Sandbox Code Playgroud)

但我收到此错误作为内部错误:“参数数据类型 ntext 对于 len 函数的参数 1 无效”

我查了一下,发现由于ReviewText的类型被定义为ntext,函数Len不会在数据库端运行它。现在,我不知道如何更改代码以获取长度超过 200 的 ReviewTexts。

c# linq entity-framework ntext

4
推荐指数
1
解决办法
8521
查看次数

如何从SQL管理工作室获取ntext列的完整数据?

我正在使用SQL Server 2005.在其中一个表中,我有一个"xmldefinition"列,它是ntext类型.现在,此列中的数据非常庞大,并包含整个xml文本.

例如:- <root><something1>....</something1></root>

我想从管理工作室获取整个字符串并将其复制到xml文件中,只是为了手动完成整个xml.但是当我查询此列并将数据复制并粘贴到另一个文件中时,内容在中间被破坏并且不完整.

例如:- <root><something1>........<somechar

我相信这只会从列中的xml数据中复制一些8196个字符.所以我的问题是,如何手动获取此列的完整数据.但是,我可以编写一个C#代码来读取该列,但我想在管理工作室中手动执行此操作.请问任何想法.

xml ssms sql-server-2005 ntext

3
推荐指数
1
解决办法
7828
查看次数

在ntext中替换换行符

其中一列使用ntext.我想将换行符和回车符替换为空格,但我一次只能做一个.有没有一种方法可以使用CHAR(10),CHAR(13)同时在SQL Server 2012上使用下面的脚本?

REPLACE(CAST(Description as NVARCHAR(MAX)), CHAR(10), ' ') AS Description
Run Code Online (Sandbox Code Playgroud)

sql sql-server replace ntext sql-server-2012

1
推荐指数
1
解决办法
6246
查看次数

与SQL Server中的运算符和尾随空格类似

这一个匹配 column_name like 'CharEndsHere%'

这个没有 column_name like 'CharEndsHere'

我知道像操作符一样会考虑尾随空格,所以我只是复制了精确的列值(带有尾随空格)并粘贴它.

有点像column_name like 'CharEndsHere '它不匹配 - 为什么?.

我没有使用'='运算符,因为列类型是ntext

我在这里缺少什么或者不应该like以这种方式使用运算符吗?

编辑:column_name like 'CharEndsHere__'(__表示空格)'CharEndsHere '是该单元格中的确切值,like以这种方式使用有效还是无效?

编辑:

这是我试过的代码,

SELECT * 
FROM [DBName].[dbo].[TableName] 
WHERE [DBName].[dbo].[TableName].Address1 LIKE rtrim('4379 Susquehanna Trail S  ') 
Run Code Online (Sandbox Code Playgroud)

我也试过没有使用rtrim,但结果相同

编辑:根据Blindy的回答,

If a comparison in a query is to return all rows with the string LIKE 'abc' (abc
without a space), all rows that start …
Run Code Online (Sandbox Code Playgroud)

sql sql-server ntext sql-server-2008 sql-like

0
推荐指数
1
解决办法
4619
查看次数

SQL Server 将字符串的长度减少到 8000 个字符

我正在尝试在列数据类型为 的表中插入数据NTEXT。理想情况下,它应该存储超过 8000 个字符,但在我的情况下,它将它减少到 8000 个字符。

我正在程序中在运行时进行插入查询。下面是该过程正在进行的示例查询。

INSERT INTO TMPRESULTS SELECT ('A' + ',' + 'B' + ',' + 'C')
Run Code Online (Sandbox Code Playgroud)

A、B、C 等是示例数据,实际数据将在运行时识别,实际内容超过 8000 个字符。用于存储值的变量也定义为 ' NVARCHAR(MAX)'

但是,当我尝试以下查询时,它确实在表中插入了 8000 多个字符

INSERT INTO TMPRESULTS SELECT ('ABCdddd................')
Run Code Online (Sandbox Code Playgroud)

我认为当我试图用“+”号连接数据时,sql server 正在将长度减少到 8000。我不能使用,CONCAT因为数据将超过 256 列/参数。

任何想法,为什么要这样做?另外,如果有人可以帮助提供一些替代解决方案,因为我将不得不在运行时进行插入查询。

sql sql-server ntext

0
推荐指数
1
解决办法
1843
查看次数