返回首页

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

更新日期:2024年09月11日

配制方法
从开始菜单中找到“Oracle Enterprise Pack for Eclipse”
,按照下面进
行选择:





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

- 81 -





GBase 8a 程序员手册JDBC 篇


- 82 -

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





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

- 83 -





GBase 8a 程序员手册JDBC 篇


- 84 -

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




该处的url 要加上数据库用
户名,
否则到后面“完成”一
步时会报错:
激活更改期间出
错,
有关详细信息,
请查看日
志。
Weblogic.application.ModuleE
xception:weblogic.common.Re
sourceException:Could
not
create
pool
connection.The
DBMS
driver
exception
was:Access denied for user
‘’@’192.168.4.135’
(using
password:YES)
若上面的url 没有
添加user 属性,
则可以在“ 属
性”中添加user
属性


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

- 85 -





GBase 8a 程序员手册JDBC 篇


- 86 -

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





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

- 87 -

当完成上述配置时,会在
F:\Oracle\Middleware\user_projects\domains\base_domain\config\jdbc 目
录中自动产生数据源的配置文件JDBC1-1894-jdbc.xml,其中的内容为(以上述
配置为例):

xmlns="http://xmlns.oracle.com/weblogic/jdbc-data-source"
xmlns:sec="http://xmlns.oracle.com/weblogic/security"
xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/jdbc-data-sourc
e
http://xmlns.oracle.com/weblogic/jdbc-data-source/1.2/jdbc-data-sour
ce.xsd">
JDBC1

jdbc:gbase://192.168.9.173:5258/test?user=gbase
com.gbase.jdbc.Driver

GBase 8a 程序员手册JDBC 篇


- 88 -

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

{AES}+N0jloveIb5I4AFsav1QJ/DIFMuXeCy/FwWrgovEnbQ
=



10



gbase_jndi

OnePhaseCommitotocol>


同时,会在
F:\Oracle\Middleware\user_projects\domains\base_domain\config\config
.xml 中自动添加内容为:

JDBC1
AdminServer

jdbc/JDBC1-1894-jdbc.xml>


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

- 89 -

GBA-02DD-0001
错误码
错误标识
错误信息
GBA-02DD-000
1
ER_GCLUSTER_HA
SH_COLUMN
distributed column <%s> should be
one of table column.
错误出现原因
建表时,指定的hash 分布列必须是存在于列定义中的某一列。

GBase 8a MPP Cluster 产品手册
7 附录
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1644
分析与建议
指定的hash 分布列不是CREATE TABLE 语句中定义的某一列,请检查建表语
句。

使用 DBCENTURY 环境变量,可以指定如何展开使用缩写年份值输入的字面 DATE 和
DATETIME 值。为避免展开缩写年份时出现问题,应用程序应要求输入 4 位年份,且应始
终将年份显示为 4 位。

当未设置 DBCENTURY(或设置为 R)时,当前年份的前两位被用来展开两位年份
值。例如,如果今天的日期为 09/30/2003,那么缩写日期 12/31/99 扩展为 12/31/2099,
而缩写日期 12/31/00 扩展为 12/31/2000。
R、P、F 和 C 设置确定用于展开两位数年份的算法。
设置
算法
R = 当前
®
使用当前年份的前两位展开年份值。
P = 过去
通过对缩写年份值加上前缀 19 和 20 来创建展开的日期。将这两个日
期与当前日期进行比较,使用早于当前日期的最新日期。
F = 将来
通过对缩写年份值加上前缀 20 和 21 来创建展开的日期。将这两个日
期与当前日期进行比较,使用晚于当前日期的最早日期。
C = 最接近
通过对缩写年份值加上前缀 19、20 和 21 来创建展开的日期。将这三
个日期与当前日期进行比较,使用最接近当前日期的日期。

设置是区分大小写的,不会对无效设置发出任何错误。如果输入 f(作为示例),那
么缺省 (R) 设置生效。P 和 F 设置不能返回当前日期,因为当前日期既不是过去也不是
将来。
为以单个位输入的年份被加上前缀 0,然后展开。不展开三位年份。用前导零填充早
于 100 的年份。
展开年份值的示例
本主题中的示例说明 DBCENTURY 的各种设置如何使缩写年份以 DATE 和 DATETIME
值的形式展开。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 151 -
DBCENTURY = P
示例数据类型:DATE
当前日期:4/6/2003
用户输入:1/1/1
加前缀“19”的展开项:1/1/1901
加前缀“20”的展开项:1/1/2001
分析:两项都早于当前日期,但 1/1/2001 更接近当前日期
当前日期。
要点: DBCENTURY 的结果取决于系统时钟日历的当前日期。因此,如果当前日期为
1/1/2001 且 DBCENTURY = P,那么此示例的缩写日期 1/1/1 将改而扩展成 1/1/1901。
DBCENTURY = F
示例数据类型:DATETIME year to month
当前日期:5/7/2005
用户输入:1-1
加前缀“20”的展开项:2001-1
加前缀“21”的展开项:2101-1
分析:只有日期 2101-1 在当前日期之后,所以选择它。
DBCENTURY = C
示例数据类型:DATE
当前日期:4/6/2000
用户输入:1/1/1
加前缀“19”的展开项:1/1/1901
加前缀“20”的展开项:1/1/2001
加前缀“21”的展开项:1/1/2101
分析:此处 1/1/2001 最接近当前日期,所以选择它。
DBCENTURY = R 或未设置 DBCENTURY
示例数据类型:DATETIME year to month
当前日期:4/6/2000
用户输入:1-1
加前缀“20”的展开项:2001-1
示例数据类型:DATE
当前日期:4/6/2003

用户输入:0/1/1

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 152 -
加前缀“20”的展开项:2000/1
分析:在这两个示例中,都使用加前缀“20”的算法。
当语言环境指定非格列高利历(如希伯莱或伊斯兰历)时,DBCENTURY 设置不会
影响 GBase 8s 产品。缩写年份时,当前年份的前导位用于备用日历系统。
数据库对象中的缩写年份和表达式
当数据库对象中的表达式(包括检查约束、分段存储表达式、SPL 例程、触发器或
UDR)包含年份为 1 位或 2 位数字的字面日期值或 DATETIME 值时,数据库服务器将使
用在创建(或上次修改)数据库对象时 DBCENTURY(和其他相关环境变量)所具有的设置
对表达式求值。
如果 DBCENTURY 已重新设置为新值,那么在展开缩写年份时会忽略新值。
例如:假定用户创建了一个表并对名为 birthdate 的列定义以下检查约束:
birthdate < '09/25/50'
表达式是根据定义约束时的 DBCENTURY 值解释的。如果包含 birthdate 列的表是
在 09/23/2000 创建的且 DBCENTURY =C,那么在对 birthdate 列执行插入或更新操作
时检查约束表达式始终解释为 birthdate < '09/25/1950'。即使用户对 birthdate
列执行插入或更新操作时对 DBCENTURY 设置了不同的值,约束表达式仍然根据定义
(或上次修改)检查约束时的设置进行解释。
在一些较早版本的 GBase 8s 上创建的数据库对象不支持创建时设置的优先级。
对于要获取此功能的旧对象
1. 删除这些对象。
2. 重新创建这些对象(或对于分段存储表达式,拆离这些对象然后重新连
接)。
重新定义这些对象之后,对象的表达式内的日期文字将根据创建或上次修改对象时的
环境进行解释。否则,它们的行为将取决于运行时环境,如果环境更改,行为有可能变得
不一致。
同时包含旧对象和新对象的数据库的管理可能会很复杂,这是因为对日期表达式求值
的新旧行为之间存在差异。为避免这一情况,建议重新定义所有旧对象。
DBCENTURY 的值和当前日期并非确定数据库服务器解释 date 和 DATETIME 值的方式
的唯一因子。DBDATE、DBTIME、GL_DATE 和 GL_DATETIME 环境变量也能够影响解释日期
的方式。有关 GL_DATE 和 GL_DATETIME 的信息,请参阅《GBase 8s GLS 用户指南》。
重要: GBase 8s 的 DBCENTURY 的行为与先前版本不兼容。