改为MERGE /*+ordered*/ INTO YJBZH_GRXDFHZMXJL GRXDFHZMXJL USING ( SELECT
A.AGMT_ID AS AGMT_ID, B.CUST_NAME AS CUST_NAME FROM
DWF.F_AGT_CADB_BOOK_H A, DWF.F_AGT_SAVB_BASICINFO_H B WHERE A.START_DT
<= TO_DATE(:B1 ,'yyyy-mm-dd') AND A.END_DT > TO_DATE(:B1 ,'yyyy-mm-dd')
AND B.START_DT <= TO_DATE(:B1 ,'yyyy-mm-dd') AND B.END_DT > TO_DATE(:B1
,'yyyy-mm-dd') AND A.MASTER_CARD_NO = B.AGMT_ID ) SAVB_BASICINFO ON (
RTRIM(GRXDFHZMXJL.DFZH) = SAVB_BASICINFO.AGMT_ID AND CJRQ =
TO_CHAR(TO_DATE(:B1 , 'YYYY-MM-DD'),'yyyymmdd') ) WHEN MATCHED THEN
UPDATE SET GRXDFHZMXJL.DFHM = SAVB_BASICINFO.CUST_NAME
加了/*+order*/ 还是出现了笛卡尔积,不得不再加hints
SQL_ID 5wyfn0trgu5rx, child number 0
-------------------------------------
MERGE /*+ ORDERED use_hash(A B) use_hash(A GRXDFHZMXJL)*/ INTO
YJBZH_GRXDFHZMXJL GRXDFHZMXJL USING ( SELECT A.AGMT_ID AS AGMT_ID,
B.CUST_NAME
再次遭遇笛卡尔积
最新推荐文章于 2021-11-12 17:17:52 发布