"这篇文档是关于达梦数据库(DM)如何使用外部链接操作远程服务器对象,特别是惯性器件(下)部分的说明。外部链接在DM数据库中允许用户执行对远程对象的查询、增删改操作,以及调用远程存储过程。"
在DM数据库中,外部链接提供了一种方式来访问和操作远程服务器上的数据。使用外部链接的语法与普通查询语法类似,主要的区别在于需要在表或视图引用中指定链接名,如`[TABLENAME | VIEWNAME] [LINK | @] 链接名`。例如,可以使用`SELECT * FROM SYSOBJECTS LINK LINK1;`来查询远程表,或者`INSERT INTO T1@LINK1 VALUES(1,2,3);`来向远程表插入数据。更复杂的操作,如更新和删除,也支持,比如`UPDATE T1@LINK1 SET C1 = C1+1 WHERE C2 NOT IN (SELECT ID FROM LOCAL_TABLE);`。
调用远程存储过程是外部链接的另一大功能,但有特定的约束:参数必须是SQL类型而非PL/SQL类型,且不接受复合类型的参数。调用的语法为`[CALL] [<模式名>.][<包名>.]<过程名> [@] <外部链接名>(<参数列>)`。然而,外部链接有一些限制,比如不支持MPP环境下的DM-DM同构外部链接,增删改操作不支持INTO语句,不支持使用游标进行增删改,理论上也不支持LOB类型列的复杂操作。
此外,当DM连接到异构数据库时,还会有额外的限制,包括基于DM的数据类型限制、遵循DM的语法标准以及主键更新的不确定性。在涉及多服务器的语句中,主键更新可能无法确保成功。
DM_SQL语言是达梦数据库使用的结构化查询语言,具备多种功能和语句,如数据定义(DDL)、数据操纵(DML)等。它支持多种数据类型,包括常规数据类型、位串、日期时间以及多媒体数据类型。DM_SQL还允许各种表达式,如数值、字符串、时间和间隔值表达式,并有明确的运算符优先级规则。同时,DM_SQL提供了丰富的数据库模式管理功能,包括用户管理、模式定义、表空间管理、表和索引的创建、修改和删除等操作。
达梦数据库的外部链接功能为跨数据库操作提供了便利,但用户在使用时需要注意相应的限制和约束,以确保操作的正确性和效率。