返回首页

gbase数据、南大通用产品文档:GBase8a查看当前正在同步起始scn 信息

更新日期:2024年09月11日

URL 示例:http://192.168.5.3:8080/startscn/{source-target-id}
该接口功能用于获取当前同步的起始scn 信息。可以用于确定某些场景下
同步工具是否在正确进行数据挖掘,该接口支持源端为oracle,gbase8t(仅
在cdc 模式下使用)。
参数说明:
source-target-id:对应config_task.xml 中的source-target 节点
id 值。

GBase RTSync 同步工具手册
南大通用数据技术股份有限公司
- 57 -
调用结果:显示具体scn 信息。
【注】:该功能只支持Oracle,SQL Server 源。

在创建一个或多个表之后(如下例中名为 dept 和 emp 的表),然后又创建了基
于 dept 和 emp 的视图(如名为 manager_info 的视图)之后,使用 INSTEAD OF 触发器更
新该视图。
以下 CREATE TRIGGER 语句创建 manager_info_update,
这是一个 INSTEAD OF 触发器,
用来通过 manager_info 视图更新 dept 和 emp 表中的行。
CREATE TRIGGER manager_info_update
INSTEAD OF UPDATE ON manager_info
REFERENCING NEW AS n
FOR EACH ROW
(EXECUTE PROCEDURE updtab (n.empno, n.empname, n.deptno,));

CREATE PROCEDURE updtab (eno INT, ename CHAR(20), dno INT,)
DEFINE deptcode INT;
UPDATE dept SET manager_num = eno where deptno = dno;
SELECT deptno INTO deptcode FROM emp WHERE empno = eno;
IF dno !=deptcode THEN
UPDATE emp SET deptno = dno WHERE empno = eno;
END IF;
END PROCEDURE;
在创建了表、视图、触发器和 SPL 例程以后,数据库服务器将下面的 UPDATE 语句视作
触发事件:
UPDATE manager_info
SET empno = 3666, empname = "Steve"
WHERE deptno = 01;

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 349 -
此触发 UPDATE 语句不会得到执行,但是此事件将造成执行触发器操作,即调
用 updtab() SPL 例程。SPL 例程中的 UPDATE 语句将值更新到manager_info 视图
的 emp 和 dept 基本表中。

不以 ifx_lo 函数来访问智能大对象,您可通过使用标准 ODBC API 来访问智能大对象。
当以标准 ODBC API 来访问智能大对象时,支持的操作包括 CLOB 和 BLOB 数据类型
的选择、插入、更新和删除。不可以这种方式来访问 BYTE 和 TEXT 简单大对象。
使用 SQL_INFX_ATTR_LO_AUTOMATIC 来设置访问方法
可使用 SQL_INFX_ATTR_LO_AUTOMATIC 属性来告诉数据库服务器,是通过使用
ODBC API 还是通过使用 ifx_lo 函数,来访问智能大对象。
如果应用程序启用 SQL_INFX_ATTR_LO_AUTOMATIC 作为连接属性,则该连接的所有
语句都继承该属性值。要更改每个语句的此属性值,您必须设置并重置它作为语句属性。
如果为该语句启用此属性,
则应用程序可通过使用如前所述的标准 ODBC 的方式来访问智
能大对象。如果未为该语句启用此属性,则应用程序通过使用 ifx_lo 函数来访问智能大对
象。如果为该语句启用此属性,则应用程序不可使用 ifx_lo 函数。
对于 GBase 8s Driver DSN,
还可通过开启 ODBC Administration 的 Advanced 标签之下的
报告标准 ODBC 类型选项,来启用 SQL_INFX_ATTR_LO_AUTOMATIC 属性。
CLOB 数据类型列的 SQLDescribeCol 返回 DataPtrType 的 SQL_LONGVARCHAR。
如果
为该语句启用 SQL_INFX_ATTR_LO_AUTOMATIC 属性,则 BLOB 类型列的
SQLDescribeCol 返回 SQL_LONGVARBINARY。
CLOB 类型列的 SQLColAttributes 为 SQL_DESC_TYPE 的 Field Identifier 返回
SQL_LONGVARCHAR,而对于 BLOB 数据类型列,仅当为该语句启用
SQL_INFX_ATTR_LO_AUTOMATIC 属性时,它才返回 SQL_LONGVARBINARY。

通过使用 ODBC API,来插入、更新和删除智能大对象
当您插入、更新和删除 CLOB 或 BLOB 数据类型时,应用程序通过使用
SQLBindParameter 来将该数据类型与一 C 类型绑定。

GBase 8s ODBC Driver 程序员指南
南大通用数据技术股份有限公司
- 106 -

当您插入、更新和删除 CLOB 数据类型时,应用程序通过使用 SQLBindParameter (C 类
型为 SQL_C_CHAR,SQL 类型为 SQL_LONGVARCHAR)来将绑定 CLOB 数据类型。

当您插入、更新和删除 BLOB 数据类型时,应用程序通过使用 SQLBindParameter (C 类
型为 SQL_C_BINARY,SQL 类型为 SQL_LONGVARBINARY)来绑定 BLOB 数据类
型。
GBase 8s ODBC Driver 以下列方式来执行智能大对象的插入:
l
驱动程序发送请求至数据库服务器,来以新文件的形式在服务器端创建智能大对象。

l
驱动程序从数据库服务器取回此文件的文件描述符(例如,lofd)。
l
驱动程序将上述 lofd 文件和由应用程序以 SQLBindParameter 绑定了的智能大对
象数据发送至数据库服务器。
l
数据库服务器将数据写入文件。

使用 ODBC API 来选择智能大对象
当选择 CLOB 数据类型时,应用程序绑定该列的 C 类型作为 SQL_C_CHAR。当选择
BLOB 数据类型时,绑定该 C 类型作为 SQL_C_BINARY。
GBase 8s ODBC Driver 以下列方式来选择智能大对象:
l
驱动程序发送请求至数据库服务器,来打开智能大对象作为服务器端的文件。
l
驱动程序从数据库服务器取回此文件的文件描述符(例如,lofd)。
l
驱动程序将上述 lofd 和读请求发送至数据库服务器,
来从该文件读取智能大对象。

l
数据库服务器通过使用上述 lofd 来从对应的文件读取数据,并将它发送至驱动程
序。
l
驱动程序将该数据写入到应用程序使用 SQLBindParameter 绑定的缓冲区。