南大通用GBase 8a数据库to_number关联报错问题处理方法

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

问题现象

to_number和decimal列关联时报错,报错内容如下:

sql 复制代码
ERROR 1149 (42000): (GBA-02SC-1001) Data types of equivalence join relation ((to_number(`a`.`a`) = `b`.`a`)) are not supported , data types: left is DOUBLE, right is DECIMAL(22,0)

具体复现过程:

sql 复制代码
gbase> create table t_to_number_dec(a decimal(22,0));
Query OK, 0 rows affected (Elapsed: 00:00:02.04)
gbase> create table t_to_number_varchar(a varchar(10));
Query OK, 0 rows affected (Elapsed: 00:00:00.12)
gbase> insert into t_to_number_dec values (111111);
Query OK, 1 row affected (Elapsed: 00:00:00.39)
gbase> insert into t_to_number_varchar values ('111111');
Query OK, 1 row affected (Elapsed: 00:00:00.35)
gbase> select * from t_to_number_varchar a join t_to_number_dec b on to_number(a.a) = b.a;
ERROR 1149 (42000): (GBA-02SC-1001) Data types of equivalence join relation ((to_number(`a`.`a`) = `b`.`a`)) are not supported , data types: left is DOUBLE, right is DECIMAL(22,0)

解决方案:

修改gbase_to_number_str2dec为1,修改后执行情况如下:

sql 复制代码
gbase> set gbase_to_number_str2dec = 1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> select * from t_to_number_varchar a join t_to_number_dec b on to_number(a.a) = b.a;
+--------+--------+
| a      | a      |
+--------+--------+
| 111111 | 111111 |
+--------+--------+
1 row in set (Elapsed: 00:00:00.12)

附:gbase_to_number_str2dec参数含义:

to_number函数在处理字符串时,转换后的类型时,参数值为0时转换成double类型,参数值为1时,转换成decimal(65,30)类型。

默认值:'OFF,0

最小值:'OFF',0

最大值:ON',1

级别: global、session

原文链接:www.gbase.cn/community/p...

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

相关推荐
BTU_YC5 小时前
Neo4j查询计划完全指南:读懂数据库的“执行蓝图“
数据库·neo4j
非极限码农5 小时前
Neo4j图数据库上手指南
大数据·数据库·数据分析·neo4j
mit6.8246 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
苏打水com6 小时前
数据库进阶实战:从性能优化到分布式架构的核心突破
数据库·后端
shan~~7 小时前
linux达梦数据库操作
linux·数据库·chrome
武文斌778 小时前
项目学习总结:LVGL图形参数动态变化、开发板的GDB调试、sqlite3移植、MQTT协议、心跳包
linux·开发语言·网络·arm开发·数据库·嵌入式硬件·学习
CoderIsArt8 小时前
SQLite架构
数据库·sqlite
lixora8 小时前
银河麒麟高级服务器操作系统(ADM64 版)V10(SP1)搭建 Oracle 19c RAC
数据库
郝学胜-神的一滴8 小时前
使用Linux的read和write系统函数操作文件
linux·服务器·开发语言·数据库·c++·程序人生·软件工程
哲Zheᗜe༘8 小时前
了解学习MySQL数据库基础
数据库·学习·mysql