返回首页

gbase数据、南大通用产品文档:GBase8cSET

更新日期:2024年09月11日

功能描述
用于修改运行时配置参数。
注意事项
大多数运行时参数都可以用SET 在运行时设置,但有些则在服务运行过程中或会话开
始之后不能修改。
语法格式
设置所处的时区。
SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT };
设置所属的模式。
SET [ SESSION | LOCAL ]
{CURRENT_SCHEMA { TO | = } { schema | DEFAULT }
| SCHEMA 'schema'};
设置客户端编码集。
SET [ SESSION | LOCAL ] NAMES encoding_name;
设置XML 的解析方式。
SET [ SESSION | LOCAL ] XML OPTION { DOCUMENT | CONTENT };

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1252
设置其他运行时参数。
SET [ LOCAL | SESSION ]
{ {config_parameter { { TO | = } { value | DEFAULT }
| FROM CURRENT }}};
参数说明

SESSION
声明的参数只对当前会话起作用。
如果SESSION 和LOCAL 都没出现,
则SESSION 为
缺省值。
如果在事务中执行了此命令,
命令的产生影响将在事务回滚之后消失。
如果该事务已提
交,影响将持续到会话的结束,除非被另外一个SET 命令重置参数。

LOCAL
声明的参数只在当前事务中有效。在COMMIT 或ROLLBACK 之后,会话级别的设置
将再次生效。
不论事务是否提交,此命令的影响只持续到当前事务结束。
一个特例是:
在一个事务里
面,即有SET 命令,又有SET LOCAL 命令,且SET LOCAL 在SET 后面,则在事务结束
之前,SET LOCAL 命令会起作用,但事务提交之后,则是SET 命令会生效。

TIME ZONE timezone
用于指定当前会话的本地时区。
取值范围:有效的本地时区。该选项对应的运行时参数名称为TimeZone,DEFAULT
缺省值为PRC。

CURRENT_SCHEMA
schema
CURRENT_SCHEMA 用于指定当前的模式。
取值范围:
已存在模式名称。
如果模式名不存在,
会导致CURRENT_SCHEMA 值为空。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1253

SCHEMA schema
同CURRENT_SCHEMA。此处的schema 是个字符串。
例如:set schema 'public'。

NAMES encoding_name
用于设置客户端的字符编码。等价于set client_encoding to encoding_name。
取值范围:有效的字符编码。该选项对应的运行时参数名称为client_encoding,默认编
码为UTF8。

XML OPTION option
用于设置XML 的解析方式。
取值范围:CONTENT(缺省)、DOCUMENT。

config_parameter
可设置的运行时参数的名称。可用的运行时参数可以使用SHOW ALL 命令查看。
说明:部分通过SHOW ALL 查看的参数不能通过SET 设置。如max_datanodes。

value
config_parameter 的新值。可以声明为字符串常量、标识符、数字,或者逗号分隔的列
表。DEFAULT 用于把这些参数设置为它们的缺省值。
示例
--设置模式搜索路径。
gbase=#SET search_path TO tpcds, public;
--把日期时间风格设置为传统的POSTGRES 风格(日在月前)。
gbase=#SET datestyle TO postgres,dmy;
相关命令
RESET,SHOW

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
1254

使用root 用户进行rpm 包的安装,
由于rpm 包之间的依赖关系,
因此oracle 客户端
rpm 包的安装顺序如下:

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.rpm
示例
安装rpm 包
# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
Preparing...
########################################### [100%]
1:oracle-instantclient-ba########################################### [100%]
# rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.rpm
Preparing...
########################################### [100%]
1:oracle-instantclient-sq########################################### [100%]
# rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
Preparing...
########################################### [100%]
1:oracle-instantclient-de########################################### [100%]

函数说明
当有两个或多个参数时,返回值为最大的参数值。
当参数中有一个为NULL 时,直接返回NULL。
当参数都是字符串时,默认是不区分大小写的,如果希望字符串值的参数进行大小
写敏感,则在需要敏感的字符串参数前加上BINARY。
hive 引擎和oracle 引擎默认区分大小写,不支持BINARY。

这些参数比较使用下列规则:
1)
如果返回值在INTEGER 上下文中或者所有的参数是整型值,那么它们使
用整数比较;
2)
如果返回值在REAL 上下文中或者所有的参数是实数值,
那么它们使用实
数比较;
3)
如果所有的参数是大小写敏感的字符串,那么参数比较也是大小写敏感
的;
其它情况下,参数比较大小写不敏感。
示例

示例1:参数值为整型数字。
gbase> SELECT GREATEST(2,0) FROM t;
+---------------+
| GREATEST(2,0) |
+---------------+
| 2 |
+---------------+
1 row in set

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 373

示例2:参数值为浮点型数字。
gbase> SELECT GREATEST(34.0,3.0,5.0,767.0) FROM t;
+------------------------------+
| GREATEST(34.0,3.0,5.0,767.0) |
+------------------------------+
| 767.0 |
+------------------------------+
1 row in set

示例3:参数值为字符串,不区分大小写。
gbase> SELECT GREATEST('B','a','C') FROM t;
+-----------------------+
| GREATEST('B','a','C') |
+-----------------------+
| C |
+-----------------------+
1 row in set

示例4:参数值为字符串,字符串参数前加上BINARY,区分大小写。
gbase> SELECT GREATEST('B',BINARY 'a','C') FROM t;
+------------------------------+
| GREATEST('B',BINARY 'a','C') |
+------------------------------+
| a |
+------------------------------+
1 row in set

示例5:参数值中包含NULL,则执行结果为NULL。
gbase> SELECT GREATEST('B',NULL,'C') FROM t;
+------------------------+
| GREATEST('B',NULL,'C') |
+------------------------+
| NULL |
+------------------------+
1 row in set