2. 概述
本手册为 KingbaseES 兼容 Oracle 的数据访问接口 Database Call Interface(以下简称DCI)的使用说明文档。
2.1. OCI 和 DCI
OCI是Oracle提供的一种应用程序编程接口(API),允许您创建使用函数调用来访问Oracle数据库、并控制SQL语句执行和数据访问的所有阶段的应用程序。
DCI是KingbaseES提供的应用程序编程接口,该接口兼容OCI的功能,允许应用程序使用函数调用来访问KingbaseES数据库,并控制SQL语句执行和数据访问的所有阶段。
2.2. DCI 工作流程
DCI工作流程如下图所示:
图 2.2.6 DCI 工作流程
SQL语句的执行流程如下图所示:
图 2.2.7 SQL 语句执行流程
2.3. DCI 支持的数据类型
数据类型 | 类型说明 |
---|---|
SQLT_CHR | 字符串类型 |
SQLT_NUM | 数值数据类型 |
SQLT_INT | 整数类型(当指定长度为1时,对应 C 的 BYTE 类型;长度为2时,对应C的 short 类型;长度为4时,对应C的 int 类型;长度为8时,对应C的 int64 类型) |
SQLT_FLT | 浮点数类型(当指定的长度为4时,对应C数据类型 float,当指定长度为8时,对应C数据类型 double) |
SQLT_STR | 变长字符串类型(末尾带有'0'结束符) |
SQLT_VNU | 变长数值类型 |
SQLT_LNG | 长整型类型 |
SQLT_VCS | 变长字符串类型 |
SQLT_DAT | 日期数据类型 |
SQLT_BFLOAT | 单精度类型 |
SQLT_BDOUBLE | 双精度类型 |
SQLT_BIN | 二进制类型 |
SQLT_LBI | 长二进制类型 |
SQLT_UIN | 无符号整数类型 |
SQLT_LVC | 超长的长整型(或字符串)类型 |
SQLT_LVB | 超长的二进制类型 |
SQLT_AFC | ANSI定长字符串类型 |
SQLT_AVC | ANSI变长字符串类型 |
SQLT_CUR | 游标类型 |
SQLT_CLOB | 字符大对象类型 |
SQLT_BLOB | 二进制大对象类型 |
SQLT_RSET | 游标类型 |
SQLT_ODT | 标准时间类型(兼容 Oracle 模式下的 DATE 类型) |
SQLT_DATE | ANSI日期类型 |
SQLT_TIME | 时间类型 |
SQLT_TIME_TZ | 带有区域的时间类型 |
SQLT_TIMESTAMP | 时间戳类型 |
SQLT_TIMESTAMP_TZ | 带有区域的时间戳类型 |
SQLT_TIMESTAMP_LTZ | 带有本地区域的时间戳类型 |
SQLT_INTERVAL_YM | YEAR-MONTH的时间间隔类型 |
SQLT_INTERVAL_DS | DAY-SECOND的时间间隔类型 |