从Oracle迁移到GBase 8s数据库时,存储过程中有使用游标绑定投影列的语法:
open cursor1 for 'select ? as username, ? usertext from dual' using p_username, p_usertext;
这个语法(投影列绑定变量)在GBase 8s中暂时还是不支持的。由于使用的是dual表,实际上只是需要返回这两个值到游标上。我们可以通过如下改造,达到类似的效果。示例存储过程如下:
从Oracle迁移到GBase 8s数据库时,存储过程中有使用游标绑定投影列的语法:
open cursor1 for 'select ? as username, ? usertext from dual' using p_username, p_usertext;
这个语法(投影列绑定变量)在GBase 8s中暂时还是不支持的。由于使用的是dual表,实际上只是需要返回这两个值到游标上。我们可以通过如下改造,达到类似的效果。示例存储过程如下:
GBase 8s v8.7 数据库建议安装在RHEL7或者CentOS7或者类似内核的Linux发布版本中。以下是安装过程中常见的一些问题:
解析:操作系统确少必要的unzip工具,需要安装unzip。CentOS系统中可通过yum install unzip安装。
如果安装目录下的隐藏文件 .gbase.properties 缺失,也会出现此问题。重新解压缩安装包后,再次安装。
SW64平台UOS20 1070e操作系统下,需要指定LD_LIBRARY_PATH=/usr/lib:/usr/lib64:$LD_LIBRARY_PATH。
解析:提示信息为无Java虚拟机,按照提示安装JRE/JDK。支持的JRE/JDK版本为1.6及以上,如CentOS自带的java-1.8.0-openjdk。
特点:
1、索引的高度相对较低
2、索引本身可以存储列值
3、索引本身有序
优点:
1、便于快速查询,提高数据访问的效率
缺点:
1、索引的使用容易形成热块竞争
2、会表开销---通过ROWID来找到对应的数据行
3、数据更新或插入带来的相关开销,包括叶子分裂等
4、创建索引的开销:锁表和排序
GBase8s提供的索引有:
B+ index
函数 index
全文检索
cluster index
Oracle提供了如下类型的索引:
B+ index
函数 index
全文检索
bitmap index
反向索引
最近碰到客户从Oracle迁移到GBase 8s使用到字段加密解密功能,使用到了Utl_raw.cast_to_varchar2、Utl_raw.cast_to_raw、Utl_encode.base64_decode、dbms_obfuscation_toolkit.desdecrypt等oracle特有函数,这些与GBase 8s自带的加密函数DECRYPT_CHAR并不兼容。客户暂时只能考虑使用程序加密的方式实现。
对于GBase 8s数据库来说,其实也可以使用自定义例程(UDR,可以是基于C,也可能是基于Java)的方式来扩展函数使用。以下我们就以这个加密解密功能来说明Java UDR的创建与使用。
GBase 8s的客户端工具相对缺乏,通过jdbc客户端工具也仅显示语法错误号码,而不具体指明实际位置。
而GBase 8s所自带的dbaccess工具能较好的显示实际位置。
以下示例的方式使用dbaccess调试SQL语句,语句已经写在1.sql文件中。
[gbasedbt@bd temp]$ dbaccess sysmaster
在RHEL7/CENTOS7/SUSE12及最新的Ubuntu等linux发行版本中, 均使用systemd进行服务控制管理(Service Control Manager)。
使用systemd, 不再需要编写shell脚本程序来控制启动、关闭。
以下是通过systemd方式实现GBase 8s数据库的自启动与关闭。
适用于操作系统: RHEL7/CENTOS7, 以及基于RHEL7内核的系统
近期有较多的客户询问:GBase 8s支不支持emoji表情符号的保存及查询?Emoji表情 和 某些特殊字符 在UTF-8编码中使用4个字节,GBase 8s支持的UTF-8编码允许使用1-4个字节,同时GBase 8s也支持GB18030-2000编码,该编码中允许使用1,2,4个字节。也就是说GBase 8s完全支持保存emoji表情符号。
以下是个操作emoji表情符号的示例:
export GBASEDBTDIR=/opt/gbase
export GBASEDBTSERVER=gbase01
export ONCONFIG=onconfig.${GBASEDBTSERVER}
export PATH=${GBASEDBTDIR}/bin:${PATH}
export DB_LOCALE=zh_CN.utf8
export CLIENT_LOCALE=zh_CN.utf8
export GL_USEGLU=1
数据类型是在创建表的时候为每个字段设置的。
GBase 8s提 供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。GBase 8s 的数据类型有很多种,主要的数据类型说明如下: