返回首页

gbase数据、南大通用产品文档:GBase8s通过命令行除去 Client SDK 或 GBase Connect (Windows)

更新日期:2024年09月11日

您可以在命令行上启动客户机产品的卸载。
您必须具有 Windows 管理员特权才能完成卸载。
1. 打开命令行环境。
2. 根据要除去的产品,运行以下某个命令:
o %GBASEDBTDIR%\uninstall\uninstall_clientsdk\uninstallclientsdk.exe
o %GBASEDBTDIR%\uninstall\uninstall_connect\uninstallconnect.exe

5 附录 环境变量
Client SDK V3.1.0 支持以下环境变量。有关这些环境变量的更多信息,请参
阅各出版物中的描述。
环境变量
用途
出版物引用和可能的值
CC8BITLEVEL
指定 C 语言编译器如何处理非
ASCII(8 位和多字节)字符。
《GBase 8s GLS 用户指南》

缺省值为 2。
CLIENT_LOCALE
指定客户机应用程序用来执行涉及客
户机上键盘、显示器、文件或打印机
《GBase 8s GLS 用户指南》

任何有效的语言环境说明

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 52 -

环境变量
用途
出版物引用和可能的值
的读/写操作的语言环境。
符。无缺省值。
COLLCHAR
指定字符的整理顺序。为与 NLS 产品
的向后兼容性而提供。
《GBase
8s
SQL 指南:
参考》

DB_LOCALE
指定客户机应用程序在某一次连接期
间访问的所有数据库的语言环境(数
据库语言环境)。
《GBase 8s GLS 用户指南》

DBALSBC
设为 1 时,启用与 ALS 产品的兼容
性。
《GBase 8s ESQL/C 程序员
手册》 值:0 或 1
DBANSIWARN
启用时 (y),使预处理器在编译时检
查 GBase 8s 扩展的 ANSI 标准 SQL
语法,并使应用程序在运行时检查
GBase 8s 扩展。
《GBase
8s
SQL 指南:
参考》

缺省值为 n。
DBAPICODE
启用 7.2 之前的系统,这些系统使用
非标准或不常用的代码集来访问以标
准代码集存储数据的数据库。最大长
度 =
23 个字符。
为与 NLS 和 ALS 产
品的向后兼容性而提供。
《GBase 8s ESQL/C 程序员
手册》
DBASCIIBC
设为 1 时,启用与 ASCII 产品的兼
容性。
《GBase 8s ESQL/C 程序员
手册》 值:0 或 1
DBCENTURY
指定如何扩展两位数字的年份 DATE
和 DATETIME 值。P
= 上世纪,R
= 本
世纪,C = 下世纪。
《GBase
8s
SQL 指南:
参考》

值:P、R 或 C 缺省值为 R。

DBCODESET
为亚洲语言环境代码集提供支持。覆
盖 DB_LOCALE 指定的代码集。为与
V4.x 和 V5.x 的 ALS 产品的向后兼
容性而提供。
《GBase 8s ESQL/C 程序员
手册》 与 ALS DBAPICODE
的值相同。缺省值是
8859-1:
(除非 gbasedbt.rc
文件指定其他系统范围的缺
省值)
DBCONNECT
指定连接是否受限制。为基于较早版
本的 GBase 8s 产品的客户机应用程
序提供向后兼容性。
《GBase 8s ESQL/C 程序员
手册》 值:1 或 3
DBCSCONV
控制代码集转换初始化。最大长度是
8 个字符。为与 ALS 产品的向后兼容
性而提供。
《GBase 8s ESQL/C 程序员
手册》 值:1 或
2:codesetname 请参阅 5.0
ALS 文档。
DBCSOVERRIDE
强制以用户指定的 DB_LOCALE 值覆
盖有关使用不同于 DB_LOCALE 的语
言环境访问数据库的缺省限制。为与
V6.0 的 ALS 数据库服务器的向后兼
容性而提供。
《GBase 8s ESQL/C 程序员
手册》 值:0 或 1
DBCSWIDTH
最多三种代码集中字符的显示字节最
大值 (1-2) 和存储字节最大值
《GBase 8s ESQL/C 程序员
手册》 示例:1,1:2,3 表示

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 53 -

环境变量
用途
出版物引用和可能的值
(1-4)。显示和存储宽度用逗号分隔;
代码集用冒号分隔。因此,该字段最
长为 11 个字符。为与 ALS 产品的向
后兼容性而提供。
代码集 1 的显示和存储宽
度都是 1 个字节;
代码集 2
的显示宽度为 2 个字节,

储宽度是 3 个字节。
DBDATE
指定 DATE 值的最终用户格式,以使
它们可以符合各种国际日期约定。为
与 7.2 之前产品的向后兼容性而提
供。建议对 7.2 ESQL/C 应用程序使
用 GL_DATE。
除非激活 NLS 变量
LC_TIME,否则缺省值是
MDY4。
DBFLTMASK
指定仅在字符缓冲区 Dbaccess 中存
储 DECIMAL、SMALLFLOAT 或 FLOAT
数据类型时要使用的小数位数。
《GBase
8s
SQL 指南:
参考》

值:0 – 16 缺省值是 16。

DBLANG
指定 GBase 8s 安装目录的子目录,
其中包含特定于产品的消息 (.iem)
文件。
《GBase
8s
SQL 指南:
参考》

缺省值为 \msg。
DBMONEY
指定 MONEY 值的最终用户格式,以使
它们可以符合各种国际和本地货币约
定。
《GBase
8s
SQL 指南:
参考》
《GBase 8s GLS 用户指南》

缺省值为 $.,.
DBMONEYSCALE
指定货币值的数字总数和小数位数总
数。为与 ALS 产品的向后兼容性而提
供。
《GBase 8s ESQL/C 程序员
手册》
DBPATH
确定包含应用程序所访问的数据库的
数据库服务器。
GBase 8s GLS 用户指南
DBSS2
最大长度是 4 个字符。为与 ALS 产
品的向后兼容性而提供。
《GBase 8s ESQL/C 程序员
手册》
值:
0x00–0xff 或 0
–255
DBSS3
最大长度是 4 个字符。为与 ALS 产
品的向后兼容性而提供。
《GBase 8s ESQL/C 程序员
手册》
值:
0x00–0xff 或 0
–255
DBTEMP
指定客户机上客户机处理器用来存储
临时文件(也称为交换文件)的目录。

《GBase
8s
SQL 指南:
参考》

缺省值为 \tmp。
DBTIME
指定 DATETIME 值的最终用户格式,
以使它们可以符合各种国际日期约
定。建议对 7.2 ESQL/C 应用程序使
用 GL_DATETIME。为与 7.2 之前产品
的向后兼容性而提供。
《GBase
8s
SQL 指南:
参考》

《GBase 8s GLS 用户指南》

缺省值
为 %Y-%m-%d %H:%M:%S。
DELIMIDENT
指示是 (y) 否 (n) 将双引号中的字
符串解释成定界标识。
《GBase
8s
SQL 指南:
参考》

缺省值为 n。
ESQLMF
指示 ESQL/C 处理器是否自动调用
ESQL/C 多字节过滤器 (value=1 and
CC8BITLEVEL<3, or not value=0)。
《GBase 8s GLS 用户指南》


GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 54 -

环境变量
用途
出版物引用和可能的值
FET_BUF_SIZE
覆盖访存缓冲区的缺省大小。
《GBase
8s
SQL 指南:
参考》

任何有效的缓冲区大小,以
字节为单位。缺省值取决于
行的大小。
GL_DATE
指定 DATE 值的定制最终用户格式。 《GBase 8s GLS 用户指南》

GL_DATETIME
指定 DATETIME 值的定制最终用户格
式。
《GBase 8s GLS 用户指南》

IFX_DISABLE_IPV6
对单个数据库实例或单个客户机应用
程序禁用 IPv6 支持。
《GBase 8s 管理员指南》
值:yes 或 no。缺省值为
no。
IFX_FLAT_USCQ
覆盖全局设置,并引导优化器对所有
会话使用子查询平铺功能。
缺省值为 0。
GBASEDBTCONRETRY
指定在 CONTIME 指定的时间限制内
对数据库服务器作出的其他连接尝试
的最大次数。
《GBase
8s
SQL 指南:
参考》

缺省值为 1。
GBASEDBTCONTIME
指定在生成错误以前 SQL CONNECT 语
句持续尝试建立连接的秒数。
《GBase
8s
SQL 指南:
参考》

缺省值为 60(seconds)。
GBASEDBTDIR
确定客户机程序、库文件、消息文件、
头文件和其他 GBase 8s 软件组件的
位置。必须始终设置 GBASEDBTDIR。
《GBase
8s
SQL 指南:
参考》

缺省值为 C:\GBASEDBT。
GBASEDBTSERVER
确定缺省数据库服务器。
《GBase
8s
SQL 指南:
参考》

GBASEDBTSQLHOSTS
指定中央注册表所在的计算机名称。 《GBase
8s
SQL 指南:
参考》

LANG
指定应用程序所访问的 NLS 数据库
的语言环境
(称为 locale)

为与 NLS
产品的向后兼容性而提供。
《GBase 8s ESQL/C 程序员
手册》 缺省值为 C。
LC_COLLATE
指定 NLS 数据库的 NCHAR 和
NVARCHAR 列中数据的整理或排序顺
序。为与 NLS 产品的向后兼容性而提
供。
《GBase 8s ESQL/C 程序员
手册》
缺省值是 LANG 指定
的值。
LC_CTYPE
指定 NLS 数据库的 NCHAR 和
NVARCHAR 列中数据的字符属性,例如
字符分类和正则表达式的大小写转
换。为与 NLS 产品的向后兼容性而提
供。
《GBase 8s ESQL/C 程序员
手册》
缺省值是 LANG 指定
的值。
LC_MONETARY
指定 NLS 数据库中 MONEY 值的最终
用户格式。为与 NLS 产品的向后兼容
性而提供。
《GBase 8s ESQL/C 程序员
手册》
缺省值是 LANG 指定
的值。
LC_NUMERIC
指定 NLS 数据库中数字值的最终用
户格式。为与 NLS 产品的向后兼容性
而提供。
《GBase 8s ESQL/C 程序员
手册》
缺省值是 LANG 指定
的值。

GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 55 -

环境变量
用途
出版物引用和可能的值
LC_TIME
指定 NLS 数据库中 DATE 和
DATETIME 值的最终用户格式。为与
NLS 产品的向后兼容性而提供。
《GBase 8s ESQL/C 程序员
手册》
缺省值是 LANG 指定
的值。
NODEFDAC
允许在不符合 ANSI 标准的数据库中
创建新表时的 PUBLIC 缺省表特权。
《GBase 8s ESQL/C 程序员
手册》 缺省值是允许特权。

OPTMSG
对应用程序中的所有 SQL 语句启用
优化的消息传送(消息链接)。
《GBase
8s
SQL 指南:
参考》

缺省值是 LANG 指定的值。
OPTOFC
在使用 DECLARE 和 OPEN 语句执行
游标的 GBase 8s ESQL/C 应用程序中
启用 optimize-OPEN-FETCH-CLOSE
功能。
《GBase
8s
SQL 指南:
参考》

缺省值是 LANG 指定的值。
TMP
可用来更改安装使用的临时空间目录
位置。如果缺省的 /tmp 目录中空间
不足,那么它很有用。
任何有效路径。




GBase 8s 客户机产品安装指南
南大通用数据技术股份有限公司 - 56 -


日志管理
GBase 8c JDBC 驱动程序支持使用日志记录,
来帮助解决在应用程序中使用JDBC 驱动
程序时的问题。GBase 8c 的JDBC 支持如下三种日志管理方式:

对接应用程序使用的SLF4J 日志框架。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
84

对接应用程序使用的JdkLogger 日志框架。

SLF4J 和JdkLogger 是业界Java 应用程序日志管理的主流框架,
描述应用程序如何使用
这些框架超出了本文范围,用户请参考对应的官方文档(SLF4J :http://
www.slf4j.org/manual.html

JdkLogger

https://docs.oracle.com/javase/8/
docs/technotes/guides/logging/overview.html)。
方式一:对接应用程序的SLF4J 日志框架。
在建立连接时,url 配置logger=Slf4JLogger。
可采用Log4j 或Log4j2 来实现SLF4J。
当采用Log4j 实现SLF4J,
需要添加如下jar 包:
log4j-*.jar、slf4j-api-*.jar、slf4j-log4*-*.jar,(*区分版本),和配置文件:
log4j.properties。若采用Log4j2 实现SLF4J,需要添加如下jar 包:log4j-api-*.jar、
log4j-core-*.jar、log4j-slf4j18-impl-*.jar、slf4j-api-*-alpha1.jar(*区分版本),和配置文件:
log4j2.xml。
此方式支持日志管控。
SLF4J 可通过文件中的相关配置实现强大的日志管控功能,
建议
使用此方式进行日志管理。
此方式依赖slf4j 的通用API 接口,如org.slf4j.LoggerFactory.getLogger(String name)、
org.slf4j.Logger.debug(String
var1)

org.slf4j.Logger.info(String
var1)

org.slf4j.Logger.warn(String warn)、org.slf4j.Logger.warn(String warn)等,若以上接口发生变
更,日志将无法打印。
示例:
public static Connection GetConnection(String username, String passwd){
String sourceURL = "jdbc:postgresql://10.10.0.13:15432/postgres?logger=Slf4JLogger";
Connection conn = null;
try{
//创建连接
conn = DriverManager.getConnection(sourceURL,username,passwd);
System.out.println("Connection succeed!");
}catch (Exception e){ e.printStackTrace(); return null;
}
return conn;
}

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
85
log4j.properties 示例:
log4j.logger.org.postgresql=ALL, log_gsjdbc
# 默认文件输出配置log4j.appender.log_gsjdbc=org.apache.log4j.RollingFileAppender
log4j.appender.log_gsjdbc.Append=true log4j.appender.log_gsjdbc.File=gsjdbc.log
log4j.appender.log_gsjdbc.Threshold=TRACE log4j.appender.log_gsjdbc.MaxFileSize=10MB
log4j.appender.log_gsjdbc.MaxBackupIndex=5
log4j.appender.log_gsjdbc.layout=org.apache.log4j.PatternLayout
log4j.appender.log_gsjdbc.layout.ConversionPattern=%d %p %t %c - %m%n
log4j.appender.log_gsjdbc.File.Encoding = UTF-8
log4j2.xml 示例:










filePattern="%d{yyyy-MM-dd}-%i.log">


















GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
86
方式二:对接应用程序使用的JdkLogger 日志框架。
默认的Java 日志记录框架将其配置存储在名为logging.properties 的文件中。Java 会在
Java 安装目录的文件夹中安装全局配置文件。logging.properties 文件也可以创建并与单个项
目一起存储。
logging.properties 配置示例:
# 指定处理程序为文件。
handlers= java.util.logging.FileHandler
# 指定默认全局日志级别
.level= ALL
# 指定日志输出管控标准java.util.logging.FileHandler.level=ALL
java.util.logging.FileHandler.pattern = gsjdbc.log java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 30 java.util.logging.FileHandler.formatter =
java.util.logging.SimpleFormatter java.util.logging.FileHandler.append=false
代码中使用示例:
System.setProperty("java.util.logging.FileHandler.pattern","jdbc.log");
FileHandler fileHandler = new
FileHandler(System.getProperty("java.util.logging.FileHandler.pattern")); Formatter formatter
= new SimpleFormatter();
fileHandler.setFormatter(formatter);
Logger logger = Logger.getLogger("org.postgresql"); logger.addHandler(fileHandler);
logger.setLevel(Level.ALL); logger.setUseParentHandlers(false);
链路跟踪功能
JDBC 驱动程序提供了应用到数据库的链路跟踪功能,用于将数据库端离散的SQL 和
应用程序的请求关联起来。该功能需要应用开发者实现org.postgresql.log.Tracer 接口类,并
在url 中指定接口实现类的全限定名。
url 示例:
String URL = "jdbc:postgresql://127.0.0.1:15432/postgres?
traceInterfaceClass=xxx.xxx.xxx.OpenGaussTraceImpl";
org.postgresql.log.Tracer 接口类定义如下:
public interface Tracer {
// Retrieves the value of traceId. String getTraceId();
}
org.postgresql.log.Tracer 接口实现类示例:

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
87
import org.postgresql.log.Tracer;
public class OpenGaussTraceImpl implements Tracer {
private static MDC mdc = new MDC(); private final String TRACE_ID_KEY = "traceId";
public void set(String traceId) { mdc.put(TRACE_ID_KEY, traceId);
}
public void reset() { mdc.clear();
}
@Override
public String getTraceId() {
return mdc.get(TRACE_ID_KEY);
}
}
上下文映射示例,用于存放不同请求的生成的traceId。
import java.util.HashMap;
public class MDC {
static final private ThreadLocal> threadLocal = new
ThreadLocal<>();
public void put(String key, String val) { if (key == null || val == null) {
throw new IllegalArgumentException("key or val cannot be null");
} else {
if (threadLocal.get() == null) { threadLocal.set(new HashMap<>());
}
threadLocal.get().put(key, val);
}
}
public String get(String key) { if (key == null) {
throw new IllegalArgumentException("key cannot be null");
} else if (threadLocal.get() == null) { return null;
} else {
return threadLocal.get().get(key);
}
}
public void clear() {
if (threadLocal.get() == null) { return;
} else {
threadLocal.get().clear();
}
}
}
业务使用traceId 示例。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
88
String traceId = UUID.randomUUID().toString().replaceAll("-", "");
openGaussTrace.set(traceId);
pstm = con.prepareStatement("select * from test_trace_id where id = ?"); pstm.setInt(1, 1);
pstm.execute();
pstm = con.prepareStatement("insert into test_trace_id values(?,?)"); pstm.setInt(1, 2);
pstm.setString(2, "test"); pstm.execute(); openGaussTrace.reset();

+-------------+
1 row in set
示例5:取模的三种表现形式。
gbase> SELECT 253 % 7, MOD(253,7), 253 MOD 7 FROM dual;
+---------+------------+-----------+
| 253 % 7 | MOD(253,7) | 253 MOD 7 |
+---------+------------+-----------+
|
1 |
1 |
1 |
+---------+------------+-----------+
1 row in set