三大关系数据库字段值超长的一个有趣对比

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,独享型 2核4GB
简介: 三大关系数据库字段值超长的一个有趣对比   在开发中,我们可能会遇到插入字段值超长的情况,前阵子遇到这样一个案例,结果一对比后发现一个有趣的现象,如果插入字段值超长,ORACLE、SQL Server、MySQL它们会提示那个字段值超长吗?下面看看实验吧:   ORACLE数据库   SQL> ...

三大关系数据库字段值超长的一个有趣对比

 

在开发中,我们可能会遇到插入字段值超长的情况,前阵子遇到这样一个案例,结果一对比后发现一个有趣的现象,如果插入字段值超长,ORACLE、SQL Server、MySQL它们会提示那个字段值超长吗?下面看看实验吧:

 

ORACLE数据库

 

SQL> create table test(id number(10), name varchar2(12));
 
Table created.
 
SQL> insert into test
  2  select 10, 'kkkkkkkkkkkkkkkkkk' from dual;
select 10, 'kkkkkkkkkkkkkkkkkk' from dual
           *
ERROR at line 2:
ORA-12899: value too large for column "SYS"."TEST"."NAME" (actual: 18, maximum:
12)

 

 

MySQL数据库

 

 

SQL> create table test(id number(10), name varchar2(12));
 
Table created.
 
SQL> insert into test
  2  select 10, 'kkkkkkkkkkkkkkkkkk' from dual;
select 10, 'kkkkkkkkkkkkkkkkkk' from dual
           *
ERROR at line 2:
ORA-12899: value too large for column "SYS"."TEST"."NAME" (actual: 18, maximum:
12)

 

SQL SERVER数据库

 

USE  AdventureWorks2014;
GO
 
CREATE TABLE TEST(ID int, NAME varchar(12));
 
INSERT INTO dbo.TEST 
SELECT 100,'kkkkkkkkkkkkkkkkkkkkkkkkk'
 
Msg 8152, Level 16, State 14, Line 6
String or binary data would be truncated.
The statement has been terminated.

 

 

 

clip_image001

 

 

如上实验所示,ORACLE、MySQL都会提示具体字段超长的细节信息,而SQL Server就傻傻的提示String or binary data would be truncated. 如果你表结构字段有十几个,那么就一个个核对吧。 不吹不黑,其实SQL Server有蛮多不友好、甚至让人诟病的地方。举个例子,使用SqlBulkCopy插入数据时,遇到错误数据源的 String 类型的给定值不能转换为指定目标列的类型xxx, 有可能是目标表字段的长度比要导入的数据长度小或者其它原因,难道准确、友好的提示具体出错信息那么难?还有使用SqlbulkCopy有时候提示给定的 ColumnMapping 与源或目标中的任意列均不匹配, 你妹啊,这不是坑爹吗! 这些都是一些细节地方,有时候真的细节见高低!此文权当吐槽篇!

相关文章
|
XML 数据库 数据格式
使用ABAP SE16查看类型为RAWSTRING的数据库列字段值
使用ABAP SE16查看类型为RAWSTRING的数据库列字段值
使用ABAP SE16查看类型为RAWSTRING的数据库列字段值
|
SQL 数据库 Go
SQL语句,在数据库的所有表里查找某一个字段值
CREATE proc Full_Search(@string varchar(50)) as begin declare @tbname varchar(50) declare tbroy cursor for select name from sysobjects where xtype= ...
1263 0
|
6天前
|
存储 关系型数据库 MySQL
|
6天前
|
存储 SQL 关系型数据库
|
2天前
|
XML Java 关系型数据库
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
|
1天前
|
关系型数据库 MySQL 数据库
关系型数据库mysql数据增量恢复
【7月更文挑战第3天】
10 2
|
1天前
|
关系型数据库 MySQL Shell
关系型数据库mysql数据完全恢复
【7月更文挑战第3天】
10 2
|
1天前
|
存储 关系型数据库 MySQL
|
3天前
|
存储 关系型数据库 MySQL
|
2天前
|
存储 关系型数据库 MySQL