リンクサーバーを介してSQLServerからOracleデータベースにデータをプルするSQLServerジョブを構築しています。入力する必要のあるテーブルには、主キーである名前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は、クエリが実行されているSQLServerデータベース上のローカルテーブルです。
このクエリを実行すると、NEXTVALのすべてのレコードに対して同じ正確な値が得られます。必要なのは、返されたレコードごとに新しい値を生成することです。
私はこの同様の質問とその答えを見つけましたが、それを私のケースに適用する方法がわかりません(可能であれば):1つのステートメントでシーケンスからいくつかのNEXTVALをクエリします