返回首页

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

更新日期:2024年09月11日

删除数据库
使用对象资源管理器可以删除用户定义的数据库,
但不能删除系统数据库。
在删除之前,考虑对数据库进行完整备份。只有通过还原备份才能重新创建已
删除的数据库。
删除数据库需要以下步骤:
在对象资源管理器中,展开“数据库”,右键单击要删除的数据库,再单
击“删除”。
确认选择了正确的数据库,再单击“确定”。


gs_encrypt_aes128(encryptstr,keystr)
描述:以keystr 为密钥对encryptstr 字符串进行加密,返回加密后的字符串。keystr 的
长度范围为8~16 字节,至少包含3 种字符(大写字母、小写字母、数字、特殊字符)

返回值类型:text
返回值长度:
至少为92 字节,
不超过4*[(Len+68)/3]字节,
其中Len 为加密前数据长度
(单位为字节)

示例:
gbase=# SELECT gs_encrypt_aes128('MPPDB','Asdf1234');
gs_encrypt_aes128
-----------------------------------------------------------------------------
-----------------
PkKJ0I+o6V83IXB2MbfS34amruD+5hrzsD/IQEU7HL0XfpAb1rfEvkjtKgoypGs7hlJfPpqc20EGx
CpHRQHfexdknO8=
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史。即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_encrypt(encryptstr,keystr,encrypttype)
描述:根据encrypttype,以keystr 为密钥对encryptstr 字符串进行加密,返回加密后的
字符串。keystr 的长度范围为8~16 字节,至少包含3 种字符(大写字母、小写字母、数字、
特殊字符)
,encrypttype 可以是aes128 或sm4。
返回值类型:text
示例:
gbase=# SELECT gs_encrypt('MPPDB','Asdf1234','sm4');
gs_encrypt
------------------------------

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
371
UFrm2vuNFSEbDAmFObfNIqW7dbCa
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史。即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_decrypt_aes128(decryptstr,keystr)
描述:以keystr 为密钥对decrypt 字符串进行解密,返回解密后的字符串。解密使用的
keystr 必须保证与加密时使用的keystr 一致才能正常解密。keystr 不得为空。
此参数需要结合gs_encrypt_aes128 加密函数共同使用。
返回值类型:text
示例:
-- gs_decrypt_aes128 第一个输入参数为gs_encrypt_aes128 输出参数;第二个输入参
数为gs_encrypt_aes128 第二个输入参数
gbase=# select
gs_decrypt_aes128('PkKJ0I+o6V83IXB2MbfS34amruD+5hrzsD/IQEU7HL0XfpAb1rfEvkjtK
goypGs7hlJfPpqc20EGxCpHRQHfexdknO8=','Asdf1234');
gs_decrypt_aes128
-------------------
MPPDB
(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史;即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_decrypt(decryptstr,keystr,decrypttype)
描述:根据decrypttype,以keystr 为密钥对decrypt 字符串进行解密,返回解密后的字
符串。解密使用的decrypttype 及keystr 必须保证与加密时使用的encrypttype 及keystr 一致
才能正常解密。keystr 不得为空。decrypttype 可以是aes128 或sm4。

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
372
此函数需要结合gs_encrypt 加密函数共同使用。
返回值类型:text
示例:

gbase=# select
gs_decrypt('ZBzOmaGA4Bb+coyucJ0B8AkIShqc','Asdf1234','sm4');

gs_decrypt

------------

MPPDB

(1 row)
由于该函数的执行过程需要传入解密口令,
为了安全起见,
gsql 工具不会将该函数记录
入执行历史;即无法在gsql 里通过上下翻页功能找到该函数的执行历史。

gs_password_deadline
描述:显示当前帐户密码离过期还距离多少天。
返回值类型:interval
示例:
gbase=# SELECT gs_password_deadline();
gs_password_deadline
-------------------------
72 days 16:16:56.315324
(1 row)

gs_password_notifytime
描述:显示帐户密码到期前提醒的天数。
返回值类型:int32

login_audit_messages
描述:查看登录用户的登录信息。
返回值类型:元组

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
373
示例:
查看上一次登录认证通过的日期、时间和IP 等信息。
gbase=# select * from login_audit_messages(true);
username | database |
logintime
|
mytype
| result |
client_conninfo
----------+----------+------------------------+---------------+--------+-----
-------------
gbase
| postgres | 2022-05-18 17:08:46+08 | login_success | ok
|
gs_ctl@[local_ip]
查看上一次登录认证失败的日期、时间和IP 等信息。
gbase=# select * from login_audit_messages(false) ORDER BY logintime desc limit
1;
username | database | logintime | mytype | result | client_conninfo
----------+----------+-----------+--------+--------+-----------------
(0 rows)
查看自从最后一次认证通过以来失败的尝试次数、日期和时间。
gbase=# select * from login_audit_messages(false);
username | database |
logintime
|
mytype
| result |
client_conninfo
----------+----------+------------------------+--------------+--------+------
-------------
(0 rows)

login_audit_messages_pid
描述:查看登录用户的登录信息。与login_audit_messages 的区别在于结果基于当前
backendid 向前查找。所以不会因为同一用户的后续登录,而影响本次登录的查询结果。也
就是查询不到该用户后续登录的信息。
返回值类型:元组
示例:
查看上一次登录认证通过的日期、时间和IP 等信息。
gbase=# SELECT * FROM login_audit_messages_pid(true);

GBase 8c SQL 参考手册
南大通用数据技术股份有限公司
374
username | database |
logintime
|
mytype
| result |
client_conninfo
|
backendid
----------+----------+------------------------+---------------+--------+-----
-------------+-----------------
gbase
| postgres | 2022-05-18 17:02:34+08 | login_success | ok
|
gs_ctl@10.0.7.16 | 140573725284096
(1 row)
查看上一次登录认证失败的日期、时间和IP 等信息。
gbase=# SELECT * FROM login_audit_messages_pid(false) ORDER BY logintime desc
limit 1;
username | database | logintime | mytype | result | client_conninfo | backendid
----------+----------+-----------+--------+--------+-----------------+-------
----
(0 rows)
查看自从最后一次认证通过以来失败的尝试次数、日期和时间。
gbase=# SELECT * FROM login_audit_messages_pid(false);
username | database | logintime | mytype | result | client_conninfo | backendid
----------+----------+-----------+--------+--------+-----------------+-------
----
(0 rows)

inet_server_addr
描述:显示服务器IP 信息。
返回值类型:inet
示例:
gbase=# SELECT inet_server_addr();

inet_server_addr

------------------

com.gbase.jdbc.Clob 类
来自com.gbase.jdbc.Clob,该类提供通用的方法来处理数据库中的Clob
类型数据,类似的接口有java.sql.Clob。GBase
JDBC 通过以下几种数据类型来
支持Clob、TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT 。
所有已实现的接口java.sql.Clob、
com.gbase.jdbc.OutputStreamWatcher、com.gbase.jdbc.WriterWatcher
属性如下:

private String charData;
该属性为Clob 对象包含字符数据。

private ExceptionInterceptor exceptionInterceptor;
声明一个异常拦截器。ExceptionInterceptor 来自com.gbase.jdbc.
ExceptionInterceptor;
表4-3 Clob 类方法列表
类型
名称
说明

Clob(ExceptionIntercept
or
exceptionInterceptor)
一个构造函数,用来创建一个新
的Clob 对象。

Clob(String
charDataInit,
ExceptionInterceptor
exceptionInterceptor)
一个构造函数,用来创建一个新
的Clob 对象。

free()
该方法释放该Clob 对象所占用

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 37 -
类型
名称
说明
的资源。
InputStream
getAsciiStream()
以ascii 流返回该Clob 值。
Reader
getCharacterStream()
以java.io.Reader 对象或以
characters 流的形式返回该
Clob 值。
Reader
getCharacterStream(long
pos, long length)
返回从pos 开始的,长度为
length 的部分Clob 值。
String
getSubString(long
startPos, int length)
返回该Clob 对象指定位置开始
一定长度的String。
long
length()
返回该Clob 对象的值长度。
long
position(java.sql.Clob
arg0, long arg1)
返回指定的Clob 值在该Clob 对
象值中指定位置后出现的位置。
long
position(String
stringToFind, long
startPos)
返回指定字符串在该Clob 对象
值中指定位置开始后出现的位置
OutputStream
setAsciiStream(long
indexToWriteAt)
用于将 Ascii 字符写入此 Clob
对象表示的 Clob 值中的流(位
置 indexToWriteAt 处)。
Writer
setCharacterStream(long
indexToWriteAt)
用于将 Unicode 字符流写入此
Clob 对象表示的 CLOB 值中的
流(位置 indexToWriteAt 处)


int
setString(long pos,
String str)
在位置 pos 处将给定 Java
String 写入此 Clob 对象指定
的 CLOB 值中。
int
setString 诉讼(long pos,
String str, int offset,
int len)
将 str 的 len 个字符写入此
Clob 表示的 CLOB 值中,
从字符
offset 开始。

streamClosed(WatchableO
utputStream out)
将该Clob 对象值通过指定
stream 写完,
并将stream 关闭。


truncate(long length)
截取该Clob 对象值,
使其长度为
length。

GBase 8a 程序员手册JDBC 篇


- 38 -

南大通用数据技术股份有限公司
类型
名称
说明

writerClosed(WatchableW
riter out)
将指定的char[]赋值给该Clob
对象的charData 属性。

writerClosed(char[]
charDataBeingWritten)
将该Clob 对象值通过指定
Writer 写完,
并将Writer 关闭。

方法详细信息:

Clob(ExceptionInterceptor exceptionInterceptor)
初始化构造一个Clob 对象,
该Clob 对象初始化属性charData 为空字符串,
初始化属性exceptionInterceptor 为参数exceptionInterceptor。
注:
ExceptionInterceptor 来自com.gbase.jdbc.
ExceptionInterceptor。

由于该构造函数是非public 的,所以对于使用JDBC 的开发人员来说,该
构造函数是不可见的。

Clob(String charDataInit, ExceptionInterceptor
exceptionInterceptor)
初始化构造一个Clob 对象,该Clob 对象初始化属性charData 为参数
charDataInit,初始化属性exceptionInterceptor 为参数
exceptionInterceptor。
注:
ExceptionInterceptor 来自com.gbase.jdbc.
ExceptionInterceptor。

由于该构造函数是非public 的,所以对于使用JDBC 的开发人员来说,该
构造函数是不可见的。

free()
public void free() throws SQLException
该方法释放该Clob 对象所使用的资源,一旦使用该方法,该对象将变得不
可用。
在该方法被调用后如果还企图去调用该Clob 对象free()以外的方法,

会得到一个SQLException 的异常。多次调用free 方法,后来的free 方法将被
视为无操作。

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 39 -
抛出:
SQLException – 在释放Clob 对象资源时发生错误。
SQLFeatureNotSupportedException – 如果JDBC 版本不支持该方法。

getAsciiStream()
public InputStream getAsciiStream() throws SQLException
以 ascii 流形式获取此 Clob 对象指定的 CLOB 值。
返回:
包含 CLOB 数据的 java.io.InputStream 对象。
抛出:
SQLException - 如果访问 CLOB 值时发生错误。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


getCharacterStream()
public Reader getCharacterStream() throws SQLException
以 java.io.Reader 对象形式(或字符流形式)获取此 Clob 对象指定的
CLOB 值。
返回:
包含 CLOB 数据的 java.io.Reader 对象
抛出:
SQLException - 如果访问 CLOB 值时发生错误
SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法

getCharacterStream(long pos, long length)
public Reader getCharacterStream(long pos, long length)
throws SQLException

GBase 8a 程序员手册JDBC 篇


- 40 -

南大通用数据技术股份有限公司
返回包含部分 Clob 值的 Reader 对象,该值从 pos 指定的字符开始,长
度为 length 个字符。
参数:
pos
- 将获取的部分值第一个字符的偏移量。Clob 中的第一个字符在位置
1 处。
length - 要获取的部分值的字符长度。
返回:
Reader,可以通过它来读取部分 Clob 值。
抛出:
SQLException
- 如果 pos 小于 1,或者 pos 大于 Clob 中的字符数,或
者 pos + length 大于 Clob 中的字符数
SQLFeatureNotSupportedException - 如果 JDBC 驱动程序不支持此方法

getSubString(long startPos, int length)
public String getSubString(long startPos, int length)
throws SQLException
获取此 Clob 对象指定的 CLOB 值中指定子字符串的副本。子字符串开始
于位置 startPos 处,有 length 个连续字符。
参数:
startPos
- 要提取的子字符串的第一个字符。第一个字符位于位置 1 处。

length - 要复制的连续字符的数量;length 的值必须大于等于 0。
返回:
一个 String,它是由此 Clob 对象指定的 CLOB 值中的指定子字符串
抛出:
SQLException - 如果访问 CLOB 值时发生错误;如果 pos 小于 1 或者

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 41 -
length 小于 0。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


length()
public long length() throws SQLException
获取此 Clob 对象指定的 CLOB 值中的字符数。
返回:
CLOB 的字符长度。
抛出:
SQLException - 如果访问 CLOB 值的长度时发生错误。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


position(java.sql.Clob arg0, long arg1)
public long position(java.sql.Clob arg0, long arg1)
throws SQLException
获取此 Clob 对象中指定的 Clob 对象 arg0 出现的字符位置。从位置
arg1 开始搜索。
参数:
arg0- 要搜索的 Clob 对象。
arg1- 开始搜索的位置;第一个位置是 1。
返回:
Clob 对象出现的位置;如果没有出现,则返回 -1;第一个位置是 1。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 arg1 小于 1。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


GBase 8a 程序员手册JDBC 篇


- 42 -

南大通用数据技术股份有限公司

position(String stringToFind, long startPos)
public long position(String stringToFind, long startPos)
throws SQLException
与position(java.sql.Clob arg0, long arg1)相似,只不过查找的是
String 对象。

setAsciiStream(long indexToWriteAt)
public OutputStream setAsciiStream(long indexToWriteAt)
throws SQLException
获取用于将 Ascii 字符写入此 Clob 对象表示的 Clob 值中的流,
从位置
indexToWriteAt 处开始。写入流中的字符将从位置 indexToWriteAt 开始重写
Clob 对象中的现有字节。如果在将字符写入流中时到达 Clob 值的末尾,则将
增加 Clob 值的长度,以容纳额外的字符。
注:
如果为 indexToWriteAt 指定的值大于 CLOB 值的长度+1,
则行为是不
确定的。一些 JDBC 驱动程序可能抛出 SQLException,而另一些驱动程序可能
支持此操作。
参数:
indexToWriteAt - 开始写入此 CLOB 对象中的位置;第一个位置是 1。
返回:
可以将 ASCII 编码字符写入其中的流。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 indexToWriteAt 小
于 1。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


setCharacterStream(long indexToWriteAt)

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 43 -
public Writer setCharacterStream(long indexToWriteAt)
throws SQLException
获取用于将 Unicode 字符流写入此 Clob 对象表示的 CLOB 值中(位置
indexToWriteAt 处)的流。写入流中的字符将从位置 indexToWriteAt 开始重
写 Clob 对象中的现有字节。如果在将字符写入流中时到达 Clob 值的末尾,
则将增加 Clob 值的长度,以容纳额外的字符。
注:
如果为 indexToWriteAt 指定的值大于 CLOB 值的长度+1,
则行为是不
确定的。一些 JDBC 驱动程序可能抛出 SQLException,而另一些驱动程序可能
支持此操作。
参数:
indexToWriteAt - 开始写入 CLOB 值中的位置;第一个位置是 1。
返回:
可将 Unicode 编码字符写入其中的流。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 indexToWriteAt 小
于 1。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


setString(long pos, String str)
public int setString(long pos, String str)
throws SQLException
在位置 pos 处将给定 Java
String 写入此 Clob 对象指定的 CLOB 值中。
该字符串将从位置 pos 开始重写 Clob 对象中的现有字节。
如果在写入给定字
符串时到达 Clob 值的末尾,则将增加 Clob 值的长度,以容纳额外的字符。
注:如果为 pos 指定的值大于 CLOB 值的长度+1,则行为是不确定的。一
些 JDBC 驱动程序可能抛出 SQLException,而另一些驱动程序可能支持此操

GBase 8a 程序员手册JDBC 篇


- 44 -

南大通用数据技术股份有限公司
作。
参数:
pos - 开始写入此 Clob 对象表示的 CLOB 值的位置;第一个位置是 1。
str - 要写入此 Clob 指定的 CLOB 值中的字符串。
返回:
写入的字符数。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 pos 小于 1。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


setString(long pos, String str, int offset, int len)
public int setString(long pos, String str, int offset, int len)
throws SQLException
将 str 的 len 个字符(从字符 offset 开始)写入此 Clob 表示的 CLOB
值中。该字符串将从位置 pos 开始重写 Clob 对象中的现有字节。如果在写入
给定字符串时到达 Clob 值的末尾,则将增加 Clob 值的长度,以容纳额外的
字符。
注:如果为 pos 指定的值大于 CLOB 值的长度+1,则行为是不确定的。一
些 JDBC 驱动程序可能抛出 SQLException,而另一些驱动程序可能支持此操
作。
参数:
pos - 开始写入此 CLOB 对象的位置;第一个位置是 1。
str - 要写入此 Clob 对象表示的 CLOB 值中的字符串。
offset - str 中开始读取要写入字符的偏移量。
len - 要写入的字符数。

GBase 8a 程序员手册JDBC 篇
南大通用数据技术股份有限公司

- 45 -
返回:
写入的字符数。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 pos 小于 1。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


streamClosed(WatchableOutputStream out)
public void streamClosed(WatchableOutputStream out)
关闭所指定的out 流。

truncate(long length)
public void truncate(long length) throws SQLException
截取此 Clob 指定的 CLOB 值,使其长度为 length 个字符。
参数:
length- CLOB 值应被截取的字符长度。
抛出:
SQLException - 如果访问 CLOB 值时发生错误,或者 len 小于 0。
SQLFeatureNotSupportedException
- 如果 JDBC 驱动程序不支持此方法。


writerClosed(WatchableWriter out)
public void writerClosed(WatchableWriter out)
关闭指定out 流。

writerClosed(char[] charDataBeingWritten)
public void writerClosed(char[] charDataBeingWritten)
将指定char[]赋值给该Clob 对象的charData 属性。
com.gbase.jdbc.Clob 示例: 参考2.5.3 小节示例

GBase 8a 程序员手册JDBC 篇


- 46 -

南大通用数据技术股份有限公司