返回首页

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

更新日期:2024年09月11日

包括新建查询(适合执行多表联合查询)和检索数据(单表数据查询)功
能。


安装unixODBC 数据源管理器
使用root 用户执行unixODBC-2.3.0-AIX5.3.bin 命令,执行后会将
unixODBC 安装到/usr 目录下(/usr/bin, /usr/lib)

unixODBC 文件列表如下:
├─bin
│ dltest
│ isql
│ iusql
│ odbcinst
│ odbc_config


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

- 11 -
└─lib
libgbase.so
libgbaseclient.a
libgbaseclient.so
libgbaseclient_r.so
libgsodbc8-8.3.81.51.a
libgsodbc8-8.3.81.51.so
libgsodbc8.a
libgsodbc8.la
libgsodbc8.so
libltdl.a
libltdl.la
libodbc.a
libodbc.la
libodbccr.a
libodbccr.la

安装GBaseODBC 驱动
使用root 用户执行GBaseODBC_8.3.81.53_build53.5_AIX5.3_64bit.bin
命令,执行后会将GBase ODBC 驱动安装到/usr/lib 目录下。
GBaseODBC 的文件列表如下:
libgbase.so
libgbaseclient.a
libgbaseclient.so
libgbaseclient_r.so
libgsodbc8-8.3.81.51.a
libgsodbc8-8.3.81.51.so
libgsodbc8.a
libgsodbc8.la

GBase 8a 程序员手册ODBC 篇


- 12 -

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

在unixODBC 数据源管理器中注册GBase ODBC 驱动
在/etc/odbcinst.ini 文件中增加如下内容:
cat /etc/odbcinst.ini
[GBase ODBC 8.3 Driver]
Driver=/usr/lib/libgsodbc8.so
UsageCount = 1
DontDLClose = 1
Threading = 0

正常情况下,转义符仅仅对字符型数据进行转义,但是在一些特殊的情况下,对于
非字符型数据也可以进行转义。
非字符型数据类型如下表所示:
非字符型数据类型
TINYINT
INT
SMALLINT
MEDIUMINT
BIGINT
BOOL
FLOAT
DOUBLE
DECIMAL
YEAR
非字符型数据进行转义的情况:

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 234
如果指定“字段包围符首字符”(FIELDS ENCLOSED BY)是特殊字符“.、0、1、2、
3、4、5、6、7、8、9、e、+、-”之一时,才会对非字符型数据类型进行转义处理。

备注:
指定“字段包围符首字符”为某特殊字符的方式有两种:
直接指定某特殊字符为“字段包围符”的首字符,例如:
SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/3.txt' FIELDS ENCLOSED BY '0';
指定“字段包围符”为空,且指定“字段分隔符”的首字符为某特殊字符,例如:

SELECT * FROM gs INTO OUTFILE '/home/gbase/temp/4.txt' FIELDS TERMINATED BY '0' ENC
LOSED BY '';
如果指定“字段包围符首字符”为“n、t、r、b、0、Z、N”之一时,实际上只能
为字符“0”,再进行导出,采用的是用其本身进行转义的方式。
示例中用到的表及数据:
DROP TABLE IF EXISTS t;
CREATE TABLE t(n int, v1 varchar(5), v2 varchar(8));
INSERT INTO t VALUES(102, 'ab', 'xmny');
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/5.txt' FIELDS ENCLOSED BY '0';
查看导出结果,非字符型数据“102”中的“0”使用本身进行转义:
$ cat 5.txt
010020 0ab0 0xmny0
如果指定“字段包围符首字符(FIELDS ENCLOSED BY)”不属于“n、t、r、b、
0、Z、N”之一时,则采用的是用转义符进行转义的方式。
示例:
SELECT * FROM t INTO OUTFILE '/home/gbase/temp/6.txt' FIELDS ENCLOSED BY '2';
查看导出结果,非字符型数据“102”中的“2”使用默认的转义符“\”进行了转义:

$ cat 6.txt
210\22 2ab2 2xmny2
特例说明:
如果导出字符包含“\0”,则导出的结果为“转义符+0”(参见“5.1.2.1.6.3 数据
中含有“\0”字符的处理”中的示例)。