数据库从Oracle迁移到MySQL后,应用报错“No Dialect mapping for JDBC type: -1”

0    189    2

Tags:

👉 本文共约397个字,系统预计阅读时间或需2分钟。

现象

应用启动报错:No Dialect mapping for JDBC type: -1

原因

数据库由Oracle迁移到MySQL,部分字段由varchar2变为了text字段,但是应用端读取数据就会出现问题,所以会报这个错误。

解决

要么修改应用代码,要么修改数据库字段,从text修改为varchar2.

但是,修改字段类型时,可能会报错“ERROR 1118 (42000) at line 931: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs”

原因:在MySQL中,非大字段类型的字段的bytes总和大于64K了 (字符类型若为gbk,每个字符最多占2个字,字符类型若为utf8,每个字符最多占3个字节),意思就是所有字段的长度不能超过65535。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

解决:

1、将字段长度修改为短一点,例如:alter table test MODIFY COLUMN name varchar(10);

2、将字段类型改为text 或 LONGTEXT

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部