我正在构建一个 SQL Server 作业,通过链接服务器将数据从 SQL Server 提取到 Oracle 数据库中。我需要填充的表具有名称 ID 的序列,这是我的主键。我很难找到一种简单的方法来做到这一点,而无需一些冗长的代码。到目前为止,这是我对 SELECT 部分的了解(一些实际名称被混淆了):
SELECT (SELECT NEXTVAL FROM OPENQUERY(MYSERVER,
'SELECT ORCL.NAME_SEQNO.NEXTVAL FROM DUAL')),
psn.BirthDate, psn.FirstName,
psn.MiddleName, psn.LastName, c.REGION_CODE
FROM Person psn
LEFT JOIN MYSERVER..ORCL.COUNTRY c ON c.COUNTRY_CODE = psn.Country
MYSERVER 是链接的 Oracle 服务器,ORCL 显然是模式。Person 是执行查询的 SQL Server 数据库上的本地表。
当我运行此查询时,我会为 NEXTVAL 的所有记录获得相同的确切值。我需要的是它为每个返回的记录生成一个新值。
我发现了这个类似的问题及其答案,但我不确定如何将其应用于我的案例(如果可能的话):Query multiple NEXTVAL from sequence in one statement