MySQL存储过程参数之参报错:[Err] 1406 - Data too long for column 'vendid' at row 313

MySQL版本:5.5.36 

数据库管理工具:Navicat 11.1.13

数据库表:《SQL必知必会(第4版)》

“存储过程”学习教程参考:https://www.yiibai.com/mysql/stored-procedures-parameters.html

经典教材《SQL必知必会(第四版)》确实是本入门的好书,要想深入还是得去扩展书本的内容,存储过程书中给的案例并不多也不太详细,这里我参考了“易百教程”给出的实例,用入参:IN,出参:OUT,对数据库表”products“进行了仿写。

新建 函数——过程——输入相关参数——编写begin和end之间的主体 后得到:

在”查询编辑器“中写调用方法:

CALL count_vendid('BRS01',@total);
SELECT @total
 

感觉没问题后运行,结果:

[SQL]CALL count_vendid('BRS01',@total);
[Err] 1406 - Data too long for column 'vendid' at row 313

翻译过来:对列‘vendid’来说数据太长。锁定‘vendid’,发现我的入参:IN vendid char 这里没给添上大小。如果不给出具体长度,那它的长度就是1。数据库里定义的vend_id字段长度为10,但是实际只用了5个字符大小,

添上长度后:IN vendid char(5)

再次运行得到想要的结果:

所以一定要注意把该写的写上了,避免不必要的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值