对 Oracle 表和视图执行插入、更新、删除和选择操作

适用于 Oracle 数据库的 Microsoft BizTalk 适配器在每个 Oracle 数据库表和视图中显示一组标准操作。 通过使用这些操作,可以对目标表 (或视图) 执行由 WHERE 子句限定的简单 SQL INSERT、UPDATE、SELECT 和 DELETE 语句。 这些操作也称为数据操作语言 (DML) 操作。 若要执行更复杂的操作,例如使用 JOIN 运算符的 SQL SELECT 查询,可以使用 SQLEXECUTE 操作。 有关 SQLEXECUTE 操作的详细信息,请参阅 Oracle 数据库中的 SQLEXECUTE 操作

下表显示了 Oracle 数据库适配器支持的 DML 操作:

操作 说明
插入 对目标表或视图执行 Insert 操作。 插入操作支持将多个记录或批量插入到目标表或视图中:

- 多记录插入操作基于提供的记录集将行插入到表或视图中。

- 批量插入操作基于提供的 SQL SELECT 查询和列列表将行插入表或视图中。 查询返回的记录将基于列列表插入到目标表中。

Insert 操作的返回值是插入的行数。

注意: 多记录插入和批量插入不能合并在同一条消息中。

InlineValue

对于多记录插入操作中的所有简单数据记录,可以选择通过指定名为 InlineValue 的可选属性的值来替代记录的值。 InlineValue 属性可用于将计算值插入表或视图中,例如使用序列填充主键列或使用 SYSDATE 将系统日期 () 插入到日期列中。 例如,在以下 INSERT 语句中:

<Insert xmlns="http://Microsoft.LobServices.OracleDB/2007/03/SCOTT/Table/ACCOUNTACTIVITY"> <RECORDSET> <ACCOUNTACTIVITYRECORDINSERT> <ACCOUNT>10001</ACCOUNT> <EMPNAME>John</EMPNAME> <AMOUNT>1500</AMOUNT> <TRANSDATE InlineValue="SYSDATE">2008-06-21T15:52:19</TRANSDATE> </ACCOUNTACTIVITYRECORDINSERT > </RECORDSET> </Insert>

即使将“2008-06-21T15:52:19”指定为 TRANSDATE 列的值,InlineValue 属性“SYSDATE” (系统日期) 的值也会插入到目标表中。

使用 InlineValue 属性时:

- 避免对 InlineValue 属性使用常量值。 例如,在 INSERT 语句中,如果指定 <EMPNAME InlineValue="John"/> ,则会导致错误。 这是因为 InlineValue 属性的值按原样传递给 Oracle,在本例中 ,John 传递到 Oracle 数据库,这不是预期值, (预期值为 “John”) 。 必须在员工姓名周围使用单引号。 例如:<EMPNAME InlineValue="’John’"/>

- 如果要对 InlineValue 属性使用选择查询,则必须将 SELECT 语句括在括号中,同时确保选择查询仅提取一条记录。 例如:<EMPNAME InlineValue="(SELECT NAME FROM MS_SAMPLE_EMPLOYEES WHERE ID=123)"/>

注意: 如果在 Oracle 数据库中将某个元素标记为 NOT NULL,则必须为该元素指定值,即使已指定内联值也是如此。 否则将导致架构验证失败。
Select 基于提供的列名列表和指定 SQL WHERE 子句的筛选器字符串,对目标表或视图执行 SQL SELECT 查询。

Select 操作的返回值是包含指定列和行的强类型结果集。
更新 对目标表或视图执行更新操作。 要更新的记录由指定 SQL WHERE 子句的筛选器字符串指定。 更新的值在模板记录中指定。

Update 操作的返回值是更新的行数。
删除 基于筛选器字符串中指定的 SQL WHERE 子句对目标表或视图执行 Delete 操作。

Delete 操作的返回值是删除的行数。

详细信息:

另请参阅

可以使用适配器执行哪些操作?