0
即時通訊Oracle和SQL新手,但我被分配了這份工作,希望有人能幫助我解決這個問題。比較一個數據堆棧是否存在於兩個不同的表中
基本上我給了一個數據庫鏈接來連接到遠程數據庫,我從那裏的一個表中提取一些信息,並從本地數據庫中提取一些其他表,然後處理它並將其插入到本地數據庫。我成功地做到了這一點,但現在我需要一種方法來確認來自遠程數據庫的所有數據實際上都已複製到本地數據庫中。我會如何去做這件事?
這是我必須將信息插入到本地數據庫的代碼。
INSERT INTO kcrt_requests_int RI
RI.TRANSACTION_ID,
RI.DESCRIPTION,
RI.CREATED_USERNAME,
RI.REQUEST_TYPE_ID,
RI.STATUS_ID,
RI.WORKFLOW_ID,
RI.WORKFLOW_STEP_ID,
RI.RELEASED_FLAG,
RI.USER_DATA1,
RI.USER_DATA2,
RI.USER_DATA3,
RI.USER_DATA4,
RI.USER_DATA7)
SELECT
KCRT_TRANSACTIONS_S.NEXTVAL,
RD.PARAMETER13||' '||R.DESCRIPTION,
'[SYS.USERNAME]',
'0001',
'31876',
'34987', '1234',
'Y',
PP.PROJECT_ID,
VP.REVIEWDATE,
RD.PARAMETER9,
R.REQUEST_ID,
RD.PARAMETER13
FROM
KCRT_REQUEST_TYPES_NLS RT,
KCRT_REQUESTS R,
KCRT_REQUEST_DETAILS RD,
[email protected] VP,
PM_PROJECTS PP
WHERE
R.REQUEST_TYPE=RT.REQUEST_TYPE_ID
AND R.REQUEST_ID=RD.REQUEST_ID
AND RD.BATCH_NUMBER=1
AND RT.REQUEST_TYPE_NAME 'AAAAA'
AND R.STATUS_CODE = 'BBBBB'
AND RD.PARAMETER13 = to_char(VP.IDBANK)
AND VP.REVIEWDATE=(SELECT MAX (VP.REVIEWDATE) FROM [email protected] VP)
AND R.REQUEST_ID=PP.PFM_REQUEST_ID
AND RD.BATCH_NUMBER=1
所以相當多,我將盡力RI.USER_DATA7比較VP.IDBANK,看看是否有KCRT_REQUESTS_INT每次v_projects @ XXXXX有一行。
感謝您的幫助!
我不能進入你的表的細節,因爲它需要比我有更多的時間來分析查詢,但一般來說,你可以比較兩個表與這兩個查詢:'SELECT * FROM TableA MINUS SELECT * FROM TableB'將列出'TableA'中不在'TableB'中的任何行,並且'SELECT * FROM TableB MINUS SELECT * FROM TableA'將列出'TableB'中不在'TableA'中的任何行。希望這可以幫助。 –