[GBase 8s 教程]GBase 8s LIKE 子句

在数据库中使用 SQL SELECT 命令来读取数据, 同时我们可以在 SELECT 语句中使用 WHERE 子句来获取指定的记录。

WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "name = '李雷'"。

但是有时候我们需要获取 name 字段含有 "李" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。

SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *; 使用下划线 _ 字段来表示单个字符。

阅读全文»

GBase 8s 编写使用UDR(C/Java)

GBase 8s数据库支持C和JAVA写的用户自定义例程(UDR),以扩展用户对数据库的操作的功能。
以下我们分别以简单的例子介绍C UDR和Java UDR。

C UDR

C UDR使用C语言为基础开发。
参考两个文档:《用户定义例程和数据类型开发者指南》和《DataBlade开发者工具用户指南》

1, 编写代码,示例使用简单的Hello.c

#include <stdio.h>

char *Hello(char *message )
{
    return(message);
}

main()
{
    char *message = "Hello World!";
    printf("%s\n", Hello(message));
}


阅读全文»

GBase 8s 数据库操作指南

一、数据库日常管理指南

简介:
GBase 8s数据库日常管理包括数据库模式的切换,以及服务器的监控。监控主要分为两个方面,一方面是系统级别的监控,主要包括对系统cpu的监控,以及内存的占用情况;另一方面是数据库级别的监控,包括对磁盘空间大小的监控,对逻辑日志物理日志的监控,对数据表中数据量的监控,以及表中索引层数,顺序扫描次数等等。我们可以通过命令或者sql语句的方式,完成对数据库的监控,也可以通过OAT图形化管理界面实现对GBase 8s数据库的监控。


阅读全文»

【案例分析】-1213 A character to numeric conversion process failed.

一个ER复制环境中,之前运行的好好的,突然报了错误"ER encountered a fatal error while evaluating replicate er_repl1 SQLCODE:-1213 ISAMCODE:0",然后ER复制关闭,无法再启动。
从SQLCODE错误号-1213可知,错误原因是:

-1213   A character to numeric conversion process failed.

A character value is being converted to numeric form for storage in a
numeric column or variable. However, the character string cannot be
interpreted as a number. It contains some characters other than white
space, digits, a sign, a decimal, or the letter e; or the parts are in
the wrong order, so the number cannot be deciphered.

If you are using NLS, the decimal character or thousands separator
might be wrong for your locale.

即字符转换成数值失败。


阅读全文»

[GBase 8s 教程]GBase 8s 常用函数、表达式

聚集函数

函数返回类型描述示例结果
COUNT(*)数值返回行数COUNT(*)100
COUNT(UNIQUE col)
COUNT(DISTINCT col)
数值返回去重后的行数(忽略NULL行)COUNT(UNIQUE col1)50
COUNT(col)数值返回行数COUNT(col1)100
AVG(col/expr)数值返回表达式或指定的列的数值平均值AVG(col1)64
AVG(UNIQUE col)
AVG(DISTINCT col)
数值返回指定的列中唯一值的数值平均值AVG(UNIQUE col1)61
MAX(col/expr)数值返回指定的列或表达式中的最大值MAX(col1)100
MIN(col/expr)数值返回指定的列或表达式中的最小值MIN(col1)10
SUM(col/expr)数值返回指定的列或表达式中的数值总和SUM(col1)5050
RANGE(col)数值返回数值列表达式参数的值的范围RANGE(col1)99
STDEV(col)数值计算数据集的标准差STDEV(col1)200
VARIANCE(col)数值总体方差的估计值,即标准差的平方VARIANCE(col1)40000


阅读全文»

GBase 8s PSM简单配置

  PSM(Primary Storage Manager)是仅有基本的备份/恢复功能(相对于Netbackup等来说),当前的版本中也仅支持文件系统设备。

以下是简单的配置步骤:
准备工作,使用gbasedbt用户,准备足够大的文件系统(目录)用于存储备份。

1,修改ONCONFIG配置文件参数

BAR_BSALIB_PATH为$GBASEDBTDIR/lib/libbsapsm.so,该参数是动态参数,可使用onmode -wf修改

[gbasedbt@bd ~]$ onmode -wf BAR_BSALIB_PATH=$GBASEDBTDIR/lib/libbsapsm.so
Value of BAR_BSALIB_PATH has been changed to /opt/gbase/lib/libbsapsm.so.

修改ALARMPROGRAM为$GBASEDBTDIR/etc/log_full.sh,该配置参数启用逻辑日志备份onbar -b -l
该参数在GBase 8s中也是动态参数,可使用onmode -wf修改

[gbasedbt@bd ~]$ onmode -wf ALARMPROGRAM=$GBASEDBTDIR/etc/log_full.sh
Value of ALARMPROGRAM has been changed to /opt/gbase/etc/log_full.sh.

修改LTAPEDEV为非/dev/null,启动逻辑日志备份,而不是丢弃逻辑日志备份。

[gbasedbt@bd ~]$ onmode -wf LTAPEDEV=/opt/gbase/backups/logs
Value of LTAPEDEV has been changed to /opt/gbase/backups/logs.


阅读全文»

GBase 8s存储过程

  存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。
存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

优点

存储过程可封装,并隐藏复杂的商业逻辑。
存储过程可以回传值,并可以接受参数。
存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
存储过程可以用在数据检验,强制实行商业逻辑等。






阅读全文»

Mybatis操作GBase 8s数据库示例

  这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Mybatis 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。

使用到的工具及组件包括:

Eclipse
JDK-1.8
Mybatis-3.4.5
GBase 8s 数据库及JDBC驱动2.0.1a2_2

最终的项目目录结构

项目结构图1.png




阅读全文»

Hibernate操作GBase 8s数据库示例

  这个例子将创建一个简单的 Java 项目结构,并演示如何使用 Hibernate 进行GBase 8s数据库的数据处理工作(插入,选择,更新和删除),以及分页显示。

使用到的工具及组件包括:

Eclipse
JDK-1.8
hibernate-5.3.12 及方言包
Hibernate-5.3.12 及对应的GBase 8s Dialect
GBase 8s 数据库及JDBC驱动2.0.1a2_2

最终的项目目录结构

项目结构图.png





阅读全文»

GBase 8s存储过程通过table(set)实现投影列绑定变量

  从Oracle迁移到GBase 8s数据库时,存储过程中有使用游标绑定投影列的语法:

open cursor1 for 'select ? as username, ? usertext from dual' using p_username, p_usertext;

  这个语法(投影列绑定变量)在GBase 8s中暂时还是不支持的。由于使用的是dual表,实际上只是需要返回这两个值到游标上。我们可以通过如下改造,达到类似的效果。示例存储过程如下:

阅读全文»