LightDB23.4 支持转换sql中中文空格和逗号为英文空格和逗号

功能介绍

在Lightdb数据库兼容Oracle的语法时,发现Oracle支持sql语句中使用中文空格和中文逗号,为了方便用户迁移到Lightdb,在Lightdb23.4版本中支持了转换中文空格和逗号的功能。该功能由GUC参数lightdb_convert_chinese_char来控制开关,默认开启转换的功能。

使用约束

  • 该功能只在Oracle兼容模式下生效;
  • 在双引号之间或者单引号之间的数据,不会转换;

使用示例

  1. 非Oracle模式,lightdb_convert_chinese_char为on, 转换空格和逗号失败
 lightdb@postgres=# show lightdb_convert_chinese_char ;
 lightdb_convert_chinese_char 
------------------------------
 on
(1 row)

lightdb@postgres=# show lightdb_dblevel_syntax_compatible_type ;
 lightdb_dblevel_syntax_compatible_type 
----------------------------------------
 off
(1 row)

lightdb@postgres=# select 1 + 2 ;
ERROR:  syntax error at or near "+"
LINE 1: select 1 + 2 ;
                  ^
lightdb@postgres=# create table t1(id int, cont varchar);
CREATE TABLE
lightdb@postgres=# 
lightdb@postgres=# insert into t1 values(1, 'xiaohong'),(2,'ming');
ERROR:  syntax error at or near "1"
LINE 1: insert into t1 values(1, 'xiaohong')(2,'ming');
                               ^
lightdb@postgres=# 

  1. Oracle模式, 转换空格和逗号成功
lightdb@oracle_test=# show lightdb_convert_chinese_char ;
 lightdb_convert_chinese_char 
------------------------------
 on
(1 row)

lightdb@oracle_test=# show lightdb_dblevel_syntax_compatible_type ;
 lightdb_dblevel_syntax_compatible_type 
----------------------------------------
 Oracle
(1 row)

lightdb@oracle_test=# 
lightdb@oracle_test=# select 1 + 2 ;
 ?column? 
----------
        3
(1 row)

lightdb@oracle_test=# create table t1(id int, cont varchar);
CREATE TABLE
lightdb@oracle_test=# insert into t1 values(1, 'xiaohong'),(2,'ming');
INSERT 0 2
lightdb@oracle_test=# 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值