场景:从SQL Server链接服务器调用INSERT INTO到Oracle时获取触发器生成的主键
鉴于
Oracle 11g表,其列为PRIMARY_KEY_ID,FIELD1,FIELD2,CREATE_DATE。表具有“BEFORE INSERT”触发器,可以从序列中选择NEXTVAL到PRIMARY_KEY_ID字段。
带有链接服务器的SQL Server 2008 R2到包含上表的Oracle数据库。
当我将记录插入Oracle表时,我想检索触发器生成的主键。
我该怎么做?
答案 0 :(得分:0)
在SQL Server中执行此代码:
DECLARE @Field1 NVARCHAR(42);
DECLARE @Field2 NVARCHAR(42);
DECLARE @PrimaryKeyValue INT;
EXECUTE (
'begin INSERT INTO MYSCHEMA.MYTABLE (
FIELD1
,FIELD2
,CREATE_DATE
)
VALUES (
?
,?
,sysdate
) RETURNING PRIMARY_KEY_ID INTO :PrimaryKeyValue; end;'
,@Field1
,@Field2
,@PrimaryKeyValue OUTPUT
) at oracle_linked_server;
备注强>