数据类型 text 和 varchar 在 equal to 运算符中不兼容。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据类型 text 和 varchar 在 equal to 运算符中不兼容。相关的知识,希望对你有一定的参考价值。
我的表里有一个text类型的字段ApplyArea,在代码里插入信息,给这个字段赋值的时候报如题的错。
网上也查了下很多资料,说用这样的方法:CONVERT(NVARCHAR(MAX),ApplyArea);
但是我有个疑问就是:我的text类型的数据可能会很长,转成nvarchar或者varchar后,长度不是变小了么,万一放不下我的text类型的数据怎么办?
操作text类型的函数很特殊,所以自新版本以来,一般大数据类型都定义为max,弃用text追问
查了下说 sql server05以后引入的max,长度和text一样,最大都为2^31-1,暂时就先把text转成nvarchar(max)吧,等出了问题再说。
追答呵呵, 不会出问题的,微软提示后续版本要摒弃text类型,所以尽可能的用nvarchar(max)类型吧
参考技术A1、运算符【>】比较等号左边是否大于右边。
2、运算符【<】比较等号左边是否小于右边。
3、运算符【==】比较等号左边是否等于右边,或者是比较引用类型比较的是引用地址是否一致。
4、运算符【>=】比较等号左边是否大于等于右边。
5、运算符【<=】比较等号左边是否小于等于右边。
6、运算符【!=】比较等号左边是否不等于右边。
使用 varchar 代替 text 数据类型有啥好处? [复制]
【中文标题】使用 varchar 代替 text 数据类型有啥好处? [复制]【英文标题】:What advantage to use varchar instead of text data type? [duplicate]使用 varchar 代替 text 数据类型有什么好处? [复制] 【发布时间】:2017-07-28 15:50:45 【问题描述】:我正在 PostgreSQL 上创建一个表,我知道该文件是 char 数据类型,但尽管我知道它最多可以存储 100 个字符,但我想知道下一个:
字符或字符变化而不是文本的优点是什么?
我认为我知道的
如果我没记错的话,字符是固定长度保留在内存中,而varchar是可变的,与Text数据类型相同。最后一个能够存储 1 GB 的数据,但最小为 0 kb,与 varchar 和 char 的最小值相同。
假设情况
然后,我猜我很懒惰,尽管我知道最多可以存储 100 个字符,但我使用文本,因为如果将来需要,它可以存储这 100 个字符甚至更多。如果不使用适当的数据类型,我会失去哪些特征?
【问题讨论】:
你的意思是“代替”,而不是“在前面”? 我希望固定 char 列的阅读速度最快。 @SergioTulentsev 不一定:***.com/q/31079819/479863。不确定这是否算作重复。 @muistooshort:啊,我当时在想mysql。 IIRC,那是真的。 没有太多我们可以添加到链接(优秀)的答案,但更多的上下文:varchar
/ character varying
是 ANSI 友好的,但不是缺少长度约束的表单. text
是 SQL 的常用扩展,但并非所有供应商都支持它。此外,在 PostgreSQL 中,text
是字符串类型类别的默认(“首选”)类型。见:select * from pg_type where typcategory = 'S'
【参考方案1】:
VARCHAR 和 TEXT 没有明显区别:
PostgreSQL: Difference between text and varchar (character varying)
【讨论】:
以上是关于数据类型 text 和 varchar 在 equal to 运算符中不兼容。的主要内容,如果未能解决你的问题,请参考以下文章
数据库:CHAR,VARCHAR,TEXT,ENUM ,SET,BINARY,VARBINARY 列的完整性约束
mysql中char,varchar与text类型的区别和选用
数据类型text 和varchar在 equal to运算符中不兼容
MySql 5.0 以上版本的varchar和text数据类型可以存的汉字个数
System.Data.SqlClient.SqlException: 数据类型 text 和 varchar 在 equal to 运算符中不兼容。