报错复现
create table tab1(id int,name varchar(20));
--正常
comment on table tab1 is 'heihei';
--报错23103
comment on table tab1 is '测试表';
复制
SQL 错误 [ErrorCode : -23103] [SQLState : IX000] : 由于无效的顺序或不正确的值,代码集转换功能失败。
java.sql.SQLException: 由于无效的顺序或不正确的值,代码集转换功能失败。
错误原因
数据库字符集为en_US.819,该字符集不支持中文
查看数据库字符集
select site from systables where tabname like '%GL_%';
site |
----------
en_US.819 |
en_US.819 |
复制
解决方法
删除数据库,重新创建字符集为utf8或者gb18030的数据库
删除时报错提示
> drop database dmdb;
23197: Database locale information mismatch.
Error in line 1
Near character position 17
>
复制
则先设置环境变量
export DB_LOCALE=en_US.819
export CLIENT_LOCALE=en_US.819
复制
然后进入dbaccess进行删除
[gbasedbt@gbase152 ~]$ dbaccess - -
Your evaluation license will expire on 2025-01-01 00:00:00
> drop database dmdb;
Database dropped.
Elapsed time: 0.029 sec
>
复制
然后再将环境变量刷新回来,重新创建数据库
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
> create database dmdb in datadbs01 with log;
Database created.
Elapsed time: 0.831 sec
> create table tab1(id int,name varchar(20));
Table created.
Elapsed time: 0.002 sec
> comment on table tab1 is '测试表';
Comments changed.
Elapsed time: 0.002 sec
>
复制
成功。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。