返回首页

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

更新日期:2024年09月11日

参数说明:控制每个fenced udf worker 进程使用的虚拟内存。
该参数属于USERSET 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:整数,0 ~ 2147483647,单位为KB,设置可带单位(KB,MB,GB)。其
中0 表示不做内存控制。
默认值:0

使用 SHMVIRT_ALLOCSEG 配置参数来指定 GBase 8s 应分配新的共享内存段的阈值,以及
如果服务器不能分配新内存段时激活的事件报警级别。
onconfig.std 值
SHMVIRT_ALLOCSEG 0,3

一个数值,可选地后跟一个逗号和另一个数值。
threshold = 当数据库服务器应添加一个共享内存段时指出的数值。:
l 0 = 缺省。当需要时数据库服务器分配的共享内存段。
l .40 - .99 = 添加一个段之前使用的内存百分比。
l 256 - 10000000 = 添加一个段之前保留的 KB 数。
alarm_level:可选的。一个从 1 至 5 的整数值,指定发出的事件报警级别:1
= 不值得
注意,2 = 信息,3 = 关注(缺省),4 = 紧急,5 = 致命。事件报警的类 ID 是 24,事
件 ID 是 24003。
分隔符
以逗号分隔这些值。
生效
编辑 onconfig 文件并重启数据库服务器之后。
用法
设置 SHMVIRT_ALLOGSEG 配置参数来主动地添加共享内存段,而不是等到数据库服务器自
动地添加共享内存段。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 143 -

如果不能分配新的内存段,则事件报警每三十分钟重复一次。

函数说明
将字符串string 格式化成format 类型的日期。
表 5-137 参数说明
格式化参数
含 义
-
,
.
:
/
空格
一般作为参数string 的分隔符号使用,不论使用何种分隔符号,格式化输
出的格式都是以“-”作为分隔符的。因为GBase
UP 的日期格式就是ISO 的
格式。
注意:string 和format 两个参数必须使用一致的分隔符。
YYYY/YY
YYYY 对应1~4 位数字,YY 对应1~2 位数字。
注意:YYYY 或YY 的值不能为空。

如果FORMAT参数没有指定YYYY或者YY,
默认为本年,
与NOW()返回
的年一致。

如果string和format都是“YY-MM-DD”格式,则返回结果,年补
足4位,年的前两位是NOW()函数中年的前2位数值。

如果string是“YY-MM-DD”格式,而format是“YYYY-MM-DD”格
式,则返回结果,年也补足4位,但是年的前两位是用“00”补足。

年的范围:0~9999。
MM
如果string 参数不包含月MM,
则format 参数默认返回NOW()函数中月对应
的数值。
DD
如果string 参数不包含日DD,则format 参数默认返回为1 日。
DDD
一年中的第N 天。
参数string 必须给定年和天数,
foramt 参数使用YYYY
DDD
的形式,系统便能计算出对应的日期。
HH、HH12、HH24 格式化小时。
如果string 参数中小时部分超过12,
则format 参数中的HH,
必须使用HH24,
否则会报错。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 896
格式化参数
含 义
AM
上午的简写,按照上午的12 小时区间,格式化小时。
注意:不要使用HH12 或者HH24 格式,
string 和format 两个参数必须同时指定AM 或者PM。
如果string 和format 两个参数指定的AM 或者PM 不一致,则以string 参
数指定的是AM 还是PM,进行格式化输出。
PM
下午的简写,按照下午的12 小时区间,格式化小时。
注意:不要使用HH12 或者HH24 格式,
string 和format 两个参数必须同时指定AM 或者PM。
如果string 和format 两个参数指定的AM 或者PM 不一致,则以string 参
数指定的是AM 还是PM,进行格式化输出。
MI
分钟。
如果string 和foramt 参数中省略MI,则返回分钟为0。
SS
秒。
如果string 和foramt 参数中省略SS,则返回秒为0。
说明

HIVE 只支持一个参数,
UP HIVE 引擎支持两个参数,
第二个参数为空,
可保持与HIVE
结果集一致,均返回年月日信息;

ORACLE 返回格式
(15-NOV-11)
与UP ORACLE 引擎返回格式
('2011-11-15 02:15:10')
不一致,若需返回相同格式日期时间,则需在ORACLE 客户端执行如下语句。
示例
示例1
alter session set nls_date_format ="yyyy-mm-dd hh24:mi:ss";
不论string和format使用何种分隔符,格式化输出的格式都是以“-”作为分隔符。
gbase> SELECT TO_DATE('2011-11-15','YYYY-MM-DD') FROM t;
+------------------------------------+
| TO_DATE('2011-11-15','YYYY-MM-DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011/11/15','YYYY/MM/DD') FROM t;
+------------------------------------+
| TO_DATE('2011/11/15','YYYY/MM/DD') |
+------------------------------------+
| 2011-11-15 |

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

gbase> SELECT TO_DATE('2011,11,15','YYYY,MM,DD') FROM t;
+------------------------------------+
| TO_DATE('2011,11,15','YYYY,MM,DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011:11:15','YYYY:MM:DD') FROM t;
+------------------------------------+
| TO_DATE('2011:11:15','YYYY:MM:DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011.11.15','YYYY.MM.DD') FROM t;
+------------------------------------+
| TO_DATE('2011.11.15','YYYY.MM.DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011 11 14','YYYY MM DD') FROM t;
+------------------------------------+
| TO_DATE('2011 11 14','YYYY MM DD') |
+------------------------------------+
| 2011-11-14 |
+------------------------------------+
1 row in set

示例2

如果string 中没有指定年,则返回本年,与NOW()返回的年一致。
gbase> SELECT TO_DATE('11-15','MM-DD') FROM t;
+--------------------------+
| TO_DATE('11-15','MM-DD') |
+--------------------------+
| 2013-11-15 |

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

如果string 和format 都是“YY-MM-DD”格式,则返回结果中的“年”补足4
位。
gbase> SELECT TO_DATE('11-11-15','YY-MM-DD') FROM t;
+--------------------------------+
| TO_DATE('11-11-15','YY-MM-DD') |
+--------------------------------+
| 2011-11-15 |
+--------------------------------+
1 row in set


如果string 是“YY-MM-DD”格式,而format 是“YYYY-MM-DD”格式,返
回结果中的年补足4 位,但是年的前两位是用“00”补足。
gbase> SELECT TO_DATE('11-11-15','YYYY-MM-DD') FROM t;
+----------------------------------+
| TO_DATE('11-11-15','YYYY-MM-DD') |
+----------------------------------+
| 0011-11-15 |
+----------------------------------+
1 row in set
示例3
如果string参数不包含月MM,则format参数默认返回NOW()函数中月对应的数值。
gbase> SELECT TO_DATE('2011-11-15','YYYY-MM-DD') FROM t;
+------------------------------------+
| TO_DATE('2011-11-15','YYYY-MM-DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-15','YYYY-DD') FROM t;
+------------------------------+
| TO_DATE('2011-15','YYYY-DD') |
+------------------------------+
| 2011-10-15 |
+------------------------------+
1 row in set
示例4

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 899
如果string参数不包含日DD,则format参数默认返回1。
gbase> SELECT TO_DATE('2011-11-15','YYYY-MM-DD') FROM t;
+------------------------------------+
| TO_DATE('2011-11-15','YYYY-MM-DD') |
+------------------------------------+
| 2011-11-15 |
+------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-11','YYYY-MM') FROM t;
+------------------------------+
| TO_DATE('2011-11','YYYY-MM') |
+------------------------------+
| 2011-11-01 |
+------------------------------+
1 row in set
示例5
返回一年中的第N天对应的日期。
gbase> SELECT TO_DATE('2011 318','YYYY DDD') FROM t;
+---------------------------------+
| TO_DATE('2011 318','YYYY DDD') |
+---------------------------------+
| 2011-11-14 |
+---------------------------------+
1 row in set

gbase> SELECT TO_DATE('2010 55','YYYY DDD') FROM t;
+--------------------------------+
| TO_DATE('2010 55','YYYY DDD') |
+--------------------------------+
| 2010-02-24 |
+--------------------------------+
1 row in set

gbase> SELECT TO_DATE('2000 366','YYYY DDD') FROM t;
+--------------------------------+
| TO_DATE('2000 366','YYYY DDD') |
+--------------------------------+
| 2000-12-31 |
+--------------------------------+
1 row in set

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

返回12 小时制和24 小时制的时间。
gbase> SELECT TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH:MI:SS') FROM t;
+------------------------------------------------------+
| TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH:MI:SS') |
+------------------------------------------------------+
| 2011-11-15 12:15:10 |
+------------------------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH12:MI:SS') FROM t;
+--------------------------------------------------------+
| TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH12:MI:SS') |
+--------------------------------------------------------+
| 2011-11-15 12:15:10 |
+--------------------------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH24:MI:SS') FROM t;
+--------------------------------------------------------+
| TO_DATE('2011-11-15 12:15:10','YYYY-MM-DD HH24:MI:SS') |
+--------------------------------------------------------+
| 2011-11-15 12:15:10 |
+--------------------------------------------------------+
1 row in set

小时部分超过12,必须使用HH24,否则报错。
gbase> SELECT TO_DATE('2011-11-14 13:00:00','YYYY-MM-DD HH:MI:SS') FROM t;
ERROR 1709 (HY000): (GBA-02EX-0005) [IP:192.168.10.181; Port:5050]Failed to call API:
Query failed.
CAUSE:incorrect parameter in function to_date.
SQL: /* gc_sql_192.168.10.181_12_82_2013-02-28 22:08:59 */ SELECT to_date('2011-11-14
13:00:00', 'YYYY-MM-DD HH:MI:SS') AS `TO_DATE('2011-11-14 13:00:00','YYYY-MM-DD
HH:MI:SS')` FROM `test1`.t_n2 AS `test1.t`

小时部分超过12,使用HH24 后,顺利格式化输出。
gbase> SELECT TO_DATE('2011-11-14 13:00:00','YYYY-MM-DD HH24:MI:SS') FROM t;
+--------------------------------------------------------+
| TO_DATE('2011-11-14 13:00:00','YYYY-MM-DD HH24:MI:SS') |
+--------------------------------------------------------+
| 2011-11-14 13:00:00 |
+--------------------------------------------------------+
1 row in set

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


下面的示例,用来说明GBase UP 的TO_DATE()函数灵活性。
gbase> SELECT TO_DATE('2000 1111','YYYY MISS') FROM t;
+----------------------------------+
| TO_DATE('2000 1111','YYYY MISS') |
+----------------------------------+
| 2000-10-01 00:11:11 |
+----------------------------------+
1 row in set
示例7

string 和format 两个参数同时指定AM 或者PM。
gbase> SELECT TO_DATE('2011-11-15 8:15:20 AM','YYYY-MM-DD HH:MI:SS AM') FROM t;
+-----------------------------------------------------------+
| TO_DATE('2011-11-15 8:15:20 AM','YYYY-MM-DD HH:MI:SS AM') |
+-----------------------------------------------------------+
| 2011-11-15 08:15:20 |
+-----------------------------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-11-15 8:15:20 PM','YYYY-MM-DD HH:MI:SS PM') FROM t;
+-----------------------------------------------------------+
| TO_DATE('2011-11-15 8:15:20 PM','YYYY-MM-DD HH:MI:SS PM') |
+-----------------------------------------------------------+
| 2011-11-15 20:15:20 |
+-----------------------------------------------------------+
1 row in set

如果string 和format 两个参数指定的AM 或者PM 不一致,则以string 参数指
定的是AM 还是PM,进行格式化输出。
gbase> SELECT TO_DATE('2011-11-15 8:15:20 AM','YYYY-MM-DD HH:MI:SS PM') FROM t;
+-----------------------------------------------------------+
| TO_DATE('2011-11-15 8:15:20 AM','YYYY-MM-DD HH:MI:SS PM') |
+-----------------------------------------------------------+
| 2011-11-15 08:15:20 |
+-----------------------------------------------------------+
1 row in set

gbase> SELECT TO_DATE('2011-11-15 8:15:20PM','YYYY-MM-DD HH:MI:SS AM') FROM t;
+---------------------------------------------------------+
| TO_DATE('2011-11-15 8:15:20PM','YYYY-MM-DD HH:MI:SS AM') |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 902
+----------------------------------------------------------+
| 2011-11-15 20:15:20 |
+----------------------------------------------------------+
1 row in set
示例8

比较NOW()和TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:MI:SS'),'YY
YY-MM-DD HH:MI:SS')。
gbase> SELECT NOW(),TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:MI:SS'),'YYYY-MM-DD
HH:MI:SS') AS f_format FROM t;
+---------------------+---------------------+
| NOW() | f_format |
+---------------------+---------------------+
| 2013-10-12 13:56:45 | 2013-10-12 01:56:45 |
+---------------------+---------------------+
1 row in set

TO_CHAR()省略掉分钟。
gbase> SELECT NOW(),TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:SS'),'YYYY-MM-DD
HH:SS') AS f_format FROM t;
+---------------------+---------------------+
| NOW() | f_format |
+---------------------+---------------------+
| 2013-10-12 13:57:06 | 2013-10-12 01:00:06 |
+---------------------+---------------------+
1 row in set
示例9

比较NOW()和TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:MI:SS'),'YY
YY-MM-DD HH:MI:SS')。
gbase> SELECT NOW(),TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:MI:SS'),'YYYY-MM-DD
HH:MI:SS') AS f_format FROM t;
+---------------------+---------------------+
| NOW() | f_format |
+---------------------+---------------------+
| 2013-10-12 13:57:37 | 2013-10-12 01:57:37 |
+---------------------+---------------------+
1 row in set

TO_CHAR()省略掉秒。
gbase> SELECT NOW(),TO_DATE(TO_CHAR(NOW(),'YYYY-MM-DD HH:MI'),'YYYY-MM-DD
HH:MI') AS f_format FROM t;

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 903
+---------------------+---------------------+
| NOW() | f_format |
+---------------------+---------------------+
| 2013-10-12 13:57:52 | 2013-10-12 01:57:00 |
+---------------------+---------------------+
1 row in set