栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL原型设计:使用varchar(N)面对数据的静默截断-还有更好的选择吗?(Teradata)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL原型设计:使用varchar(N)面对数据的静默截断-还有更好的选择吗?(Teradata)

我对实现varchar(n)的SQL方言并不熟悉,该行为的行为符合您的建议-建议使用初始大小,然后让其增长。这将适用于Oracle,SQL
Server,MySQL和Postgres。在所有这些数据库中,varchar(n)的行为几乎与您在具有显式强制转换的SELECT语句中在Teradata中的行为一样。我不认为将较长的字符串放入较短的字符串会导致截断错误。

正如Branko在评论中指出的那样,行为在数据修改步骤中是不同的,其中隐式强制转换确实会导致错误。

我对Teradata的所有细节都不熟悉。在SQL
Server中,从历史上看,varchar(max)和varchar(8000)之间存在很大的差异。前者将分配在单独的数据页面上,后者将与数据分配在同一页面上。(规则已在最新版本中进行了修改,因此varchars可能会溢出数据页面。)

换句话说,使用varchar(max)时可能还有其他考虑因素,包括数据如何存储在页面上,如何在页面上建立索引以及其他考虑因素。

我的建议是,您选择一个相当大的大小(例如1000左右),然后让应用程序从那里继续。如果要获得真正的灵活性,请使用varchar(max)。您还应该通过Teradata文档和/或技术联系来调查声明非常大的字符串存在的问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647487.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号