GBase 8s
适配迁移
文章

GBase 8s支持表名列名存在大写字母特殊字符

发表于2024-07-03 13:35:37219次浏览11个评论

GBase 8s支持表名列名存在大写字母特殊字符

问:下面语句没有执行成功。表名,列名里需要有空格、特殊字符等,怎么办?

答:设置环境变量DELIMIDENT

 

设置方法

export DELIMIDENT=Y

export DELIMIDENT=N

或者不设置

 

y

设置为y时,双引号会有特殊含义,被双引号括起来的字符串为数据库标识。

 

数据库标识符(也称为 SQL 标识符)是数据库对象(例如:表和列)的名称。

 

n或者不设置

 

 

双引号和单引号作用相同

 

 

 

 

 

 

 

 

 

 

 

 

 

下面给一些栗子:

示例1到示例4的前提:

#设置环境变量
export DELIMIDENT=Y

# 连接test库
dbaccess test -

示例1:

create table t1 ("Vitamin E" varchar(20));
select * from t1;

示例2:

create table t2 ("Vitamin#C" varchar(20));
select * from t2;

示例3:

--查询列"Vitamin E"时,不能省略双引号
select "Vitamin E" from t1;

示例4:

create table "t1 23 4"(id int);
insert into "t1 23 4" values(123);
select * from "t1 23 4";


示例5:会话级设置方式

--会话级
--set environment DELIMIDENT '1';开启
--set environment DELIMIDENT '0';关闭

dbaccess test -
--开启
> set environment DELIMIDENT '1';
> create table tt1(id int,"V C" char(20));
> select id,"V C" from tt1;

--关闭
> set environment DELIMIDENT '0';
> create table tt2(id int,"V C" char(20));

-

 

评论

登录后才可以发表评论
用户头像
路路路发表于 9个月前
GBase用户19279发表于 3个月前
1
GBase用户19279发表于 3个月前
2
GBase用户19279发表于 3个月前
3
GBase用户19279发表于 3个月前
4
GBase用户19279发表于 3个月前
5
用户头像
路路路发表于 3个月前
用户头像
路路路发表于 3个月前
用户头像
路路路发表于 3个月前
用户头像
路路路发表于 3个月前
用户头像
路路路发表于 3个月前