默认分类,案例分析
只是一个默认分类

Windows下Python3通过DbtPy连接到GBase 8s数据库

示例使用的操作系统:Win 7 64bit
软件需求:Python 3.7.9

1,安装CSDK,设置环境变量

可从以下地址下载:

https://gbasedbt.com/odbc/GBase8s_3.0-Win64-ODBC-Driver.zip

免安装CSDK版本。
解压,生成的gbase8s-odbc-driver放置于D:\目录下。
在我的电脑->系统属性->高级->环境变量 中,增加环境变量GBASEDBTDIR 指向D:\gbase8s-odbc-driver,Path中增加%GBASEDBTDIR%\bin;




阅读全文»

Linux下Python3通过DbtPy连接到GBase 8s数据库

操作系统:CentOS 7.8 64-bit
软件需求:
Python 3.6.8 及Python-devel 3.6.8

有互联网连接的情况下,可以直接安装DbtPy (仅限Linux x64和Win x64)

1,直接pip3安装DbtPy,将自动安装最新的DbtPy

[root@a02 ~]# pip3 install DbtPy
Collecting DbtPy
  Downloading http://mirrors.cloud.aliyuncs.com/pypi/packages/1f/45/22d842ffe40fbcb58878b891ba8f4e319a3585afd0f09ac13fd3d51b0a9b/DbtPy-3.0.5.tar.gz (165kB)
    100% |████████████████████████████████| 174kB 13.0MB/s
# 注:对于Linux x64和Win x64,这步可以需要些时间下载对应的csdk驱动。
Installing collected packages: DbtPy
  Running setup.py install for DbtPy ... done
Successfully installed DbtPy-3.0.5


阅读全文»

GBase 8s数据库SQL对象中关键字使用

数据库开发人员在使用SQL的时候,不可避免的会碰到类似以下情况。比如:使用user作为用户名的字段名称,使用timestamp作为时间戳的字段名称。然而,大多数数据库均可能把user,timestamp等作为了保留的关键字。这时如果开发人员设计了user关键字为表字段,在SQL操作时,可能就会碰到些问题。
比如以下示例:

create table tab2(id serial,user varchar(60), timestamp timestamp);

--插入记录
insert into tab2 values(0,'test001',current year to second);

阅读全文»

GBase 8s存储过程中获取当前时间

GBase 8s数据库中获取当前时间,可以使用current year to second这样方式。
但在存储过程中,如果我们想要获取某一段语句的执行时间长度,需要使用两个变量获取当时时间,如下:

drop procedure if exists proc_datetime;
create procedure proc_datetime() returns varchar(255);
  define dt1 datetime year to second;
  define dt2 datetime year to second;
  let dt1 = current year to second;
  system "sleep 5";
  let dt2 = current year to second;
  return "dt1: " || dt1 || " dt2: " || dt2;
end procedure;

阅读全文»

Oracle与GBase 8s数据类型对比-Number类型

Oracle数据库NUMBER(precision,scale)
precision表示数字中的有效位,从左边第一个不为0的数算起,小数点和负号不计入有效位数; scale表示精确到多少位,指精确到小数点左边或右边多少位(+-决定)。
如果没有指定precision的话,Oracle将使用38作为精度;
如果scale大于零,表示数字精确到小数点右边的位数;
scale默认设置为0;
如果scale小于零,Oracle将把该数字取舍到小数点左边的指定位数;
Precision的取值范围为1至38,Scale的取值范围为-84至127;
NUMBER整数部分允许的长度为(precision - scale),无论scale是正数还是负数;
如果precision小于scale,表示存储的是没有整数的小数。









阅读全文»

GBase 8s 中数据类型serial与序列sequence之间的异同

GBase 8s 数据库对自增列有两种形式:serial数据类型(以及扩展的bigserial和serial8), int数据类型(以及扩展的bigint和int8)+序列组合实现。
这两种实现方式各有各的优势,以下我们以测试来说明。

创建测试表及相应的触发器、存储过程

自增数据类型serial,仅需要指明数据类型即可

-- 自增数据类型
create table tabserial (id serial, name varchar(128));

阅读全文»

影响DATE数据类型的环境变量解析

经常碰到用户说从一个库导出来的数据,到另一个库导入,或者插入数据,报失败(1205: 日期中的月份错误)。该问题其实date跟环境变量有很大关系,涉及到DBDATE,GL_DATE,CLIENT_LOCALE环境变量。
在"美国英语",即en_US环境下,DBDATE 的缺省值为 MDY4/(即12/31/2020这样的格式)。在其他环境时,DBDATE不使用缺省值,如DB_LOCALE/CLIENT_LOCALE=zh_CN.utf8时,date的格式为(2020 12月 31日),此时操作date类型的数据时,很可能就会碰上1205错误,比如:


阅读全文»