表table_1
區域
36101
3610101
36102
3610201
....
表table_2
區域 條碼 時間
36101 111111 2000-01-01
36101 111122
3610101 111112
36102 222222
3610201 333333
....
表table_3
區域 條碼 時間
36101 111111 2000-01-01
36101 111122 1988-01-01
3610101 111112 1998-01-01
36102 222222 2022-01-01
3610201 333333 1999-01-01
....
--條碼是唯一標識
因為實際資料量很大,而且是跨DBlink,有時候會連接中斷,我想按照每個區域進行回圈更新,也就是36101%、36102%.....這樣的,因為實際我寫的是存盤程序,我想在USING里對變數M進行模糊查詢,不知道該怎么添加,求大佬幫忙!!(也就是下面USING條件里的 b.區域 like M.區域%)
【
直接substrc(b.區域,1,5) = M.區域,這個我試了一下,效率好像沒有LIKE來的快;
b.區域 like ''''M.區域'%''' 這樣的也沒用;
想學習一下怎么在存盤程序里使用模糊查詢一個變數;
或者大佬有什么更好的思路,求賜教!!!!
】
FOR M IN
(SELECT substrc(區域,1,5) as 區域 FROM table_1)
LOOP
MERGE INTO table_2 A
USING (select b.條碼,b.時間 from table_2 a,table_3 b where a.條碼=b.條碼 and b.區域 like M.區域%) C
ON (A.條碼 = C.條碼)
WHEN MATCHED THEN
UPDATE SET A.時間 = C.時間;
COMMIT;
END LOOP;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/233206.html
標籤:高級技術
上一篇:oracle19c這讓我自閉了
