sql server 2000 ntext 字段对应oracle那个字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2000 ntext 字段对应oracle那个字段?相关的知识,希望对你有一定的参考价值。

sql server 2000 ntext 字段对应oracle那个字段?

在sql中:
ntext:变长Unicode的字符型数据,最大长度为2^31-1(2G);
NTEXT数据类型与TEXT 类型相似不同的是NTEXT 类型采用UNICODE 标准字符集Character Set 因此其理论容量为230-1 1 073 741 ;
在oracle中:
LONG:可变长的字符串数据,最长2G,LONG具备VARCHAR2列的特性,能够存储长文本一个表中最多一个LONG列
二进制类:
所以ntext对应long,而不是一楼说的lang,有lang这个数据;类型?????
参考技术A lang

当列是NTEXT时,SQL Server:IN('asd')不工作

我该如何解决这个问题?

where someNtext IN ('asd',asd1')

给出错误:

Msg 402,Level 16,State 1,Line XXXXX 数据类型ntext和varchar在等于运算符中不兼容。

答案

IN列表只是OR条件的简写。 LIKE条款适用于NTEXTTEXT字段。因此,您可以将这两个想法结合起来:

WHERE (
       someNtext LIKE N'asd'
OR     someNtext LIKE N'asd1'
      )

但是,正如@marc_s在对该问题的评论中所建议的那样,NVARCHAR(MAX)是首选,因为所有字符串函数都可以使用它(并且自SQL Server 2005起,TEXTNTEXTIMAGE数据类型已被弃用)。您可以执行内联转换,例如:

WHERE CONVERT(NVARCHAR(MAX), someNtext) IN (N'asd', N'asd1')

但可能不会像在LIKE条件下使用OR子句一样好。

请注意:使用NTEXT / NVARCHAR / NCHAR / XML数据时,最好始终使用大写“N”作为字符串文字的前缀。不这样做会导致与数据库的默认排序规则关联的代码页不支持的任何字符的数据丢失。

有关在SQL Server中使用归类/编码/ Unicode /字符串的更多信息,请访问:https://Collations.Info/

另一答案

来自http://msdn.microsoft.com/en-us/library/ms187993.aspx

将来的Microsoft SQL Server版本中将删除ntext,text和image数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max),varchar(max)和varbinary(max)。

另一答案

NText是不可比的你拧,如果你需要比较使用nvarchar(MAX)不要使用它

以上是关于sql server 2000 ntext 字段对应oracle那个字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算访问查询中 SQL Server ntext(即备忘录)字段中的字符数?

(轉載)sql server xml字段的操作

当列是NTEXT时,SQL Server:IN('asd')不工作

sql server哪个字段类型可以保存最长文字

在 SQL Server Management Studio for SQL CE 数据库中查看所有 ntext 列文本

sqlserver 追加 数据