【发布时间】:2017-05-24 16:46:54
【问题描述】:
我目前正在从 Oracle 数据库中的视图中获取一组记录,并尝试根据使用 BizTalk 的列将它们插入/更新到 SQL Server 表中的表中。
为此我创建了一个存储过程:
Create PROCEDURE [dbo].[uspInsertorUpdateDepartment]
@dept_name varchar(64),
@jax_dept_id char(32)
AS
BEGIN
SET NOCOUNT ON;
IF (SELECT TOP (1) 1 FROM afm.[jax_dept]
WHERE jax_dept_id = @jax_dept_id) IS NULL
INSERT INTO afm.[jax_dept](dept_name, jax_dept_id)
VALUES (@dept_name,@jax_dept_id)
ELSE
UPDATE afm.[jax_dept]
SET dept_name = @dept_name
WHERE jax_dept_id = @jax_dept_id
END
我使用使用适配器服务为存储过程创建了架构。在映射和编排中使用它们。虽然我无法在映射中使用 lopping functoid
因此删除了 lopping 并部署了应用程序。并尝试运行,它运行没有任何错误,但只是将 oracle 视图中的第一条记录插入到 SQL Server 数据库中,留下所有其他记录。如何解决这个问题,以便将来自 oracle 的整个记录集插入/更新到 SQL Server 数据库中。
【问题讨论】:
-
你有前 1 个,所以这可能是问题所在。也许在这里使用合并命令会更好。
-
@Chuck 我如何合并。我是存储过程的新手,无法遵循
标签: sql-server stored-procedures biztalk biztalk-2013