1

我有两张表 (ORACLE):D_CONTROL_CARGA 和 F_PS_CARGA_DIARIA_D

SELECT control_id, control_cd, control_query_tx 
FROM ONHR_DIM.D_CONTROL_CARGA;

表 D_CONTROL_CARGA

SELECT FECHA_ID, CONTROL_ID, CONTROL_CD, CANTIDAD_CA 
FROM onhr_dim.F_PS_CARGA_DIARIA_D;

表 F_PS_CARGA_DIARIA_D

我想用这个 PL/SQL 代码更新 CANTIDAD_CA 列:

DECLARE
sql_qry ONHR_DIM.D_CONTROL_CARGA.control_query_tx%TYPE;
cantidad_ca ONHR_DIM.F_PS_CARGA_DIARIA_D.CANTIDAD_CA%TYPE;
CURSOR cQueries IS SELECT control_id,control_query_tx FROM ONHR_DIM.D_CONTROL_CARGA;
BEGIN
   FOR reg IN cQueries LOOP
        sql_qry:=SUBSTR(reg.control_query_tx, 0, LENGTH(reg.control_query_tx) - 1);
        IF sql_qry not like '%to_char(sysdate%' THEN 
           execute immediate sql_qry into cantidad_ca;
           UPDATE ONHR_DIM.F_PS_CARGA_DIARIA_D SET CANTIDAD_CA=cantidad_ca WHERE CONTROL_ID=reg.control_id AND FECHA_ID=TRUNC(SYSDATE);        
        END IF;
    END LOOP;
END;

然后我得到:更新的行-1

我必须改变什么?

4

0 回答 0