CREATE OR REPLACE PROCEDURE RAISESALARY AS
P_CUSTINSID NUMBER(12);
REGNUMBER VARCHAR(200);
P_NUM NUMBER(12);
CHECK_SQL VARCHAR(4000);
CURSOR CUSTINSID IS
SELECT O.CUST_INS_ID
FROM ES_INS_CUST_INFO O
WHERE O.CITY <> 752254
AND O.PAY_WAY = 2
AND O.REG_NO IS NULL
ORDER BY O.CUST_INS_ID;
BEGIN
SELECT T.REG_NO
INTO REGNUMBER
FROM (SELECT O.REG_NO
FROM ES_INS_CUST_INFO O
WHERE O.CITY <> 752254
AND O.PAY_WAY = 2
AND TRIM(TRANSLATE(O.REG_NO, '0123456789', ' ')) IS NULL
AND LENGTH(O.REG_NO) = 18
ORDER BY O.REG_NO DESC) T
WHERE ROWNUM = 1;
P_NUM := 0;
FOR VARCUSTINSID IN CUSTINSID LOOP
P_CUSTINSID := VARCUSTINSID.CUST_INS_ID;
P_NUM := P_NUM + 1;
CHECK_SQL := 'UPDATE ES_INS_CUST_INFO O SET O.REG_NO = ' ||
TO_CHAR(TO_NUMBER(REGNUMBER) + P_NUM) ||
' WHERE O.CUST_INS_ID = ' || P_CUSTINSID;
EXECUTE IMMEDIATE CHECK_SQL;
END LOOP;
END RAISESALARY;
--调用存储
CALL RAISESALARY();