CREATE OR REPLACE PROCEDURE PROC_DATAFILTER_NEW IS
TYPE type_cur IS REF CURSOR;
cur_temp type_cur;
v_count NUMBER;
v_len NUMBER;
v_upnum VARCHAR(32);
v_number VARCHAR(32);
v_sql VARCHAR(512);
V_ERR_CODE NUMBER;
V_ERR_MSG VARCHAR2(1024);
BEGIN
OPEN cur_temp FOR
SELECT DISTINCT(RTRIM(a.CALLEDPARTYNUMBER))
FROM SER_BILLS_TEMP a
WHERE ( a.CALLEDPARTYNUMBER LIKE '4008%'
OR a.CALLEDPARTYNUMBER LIKE '95%')
AND NOT EXISTS (SELECT B.UPNUMBER
FROM BASETAB_810 B
WHERE B.UPNUMBER = a.CALLEDPARTYNUMBER);
LOOP
FETCH cur_temp
INTO v_upnum; -- CALLEDPARTYNUMBER 集合
EXIT WHEN cur_temp%NOTFOUND;
v_len := length(v_upnum);
FOR i IN 1 .. v_len
LOOP
dbms_output.put_line(i||' : v_len = '||v_len);
IF v_len - i >= 5
THEN
SELECT COUNT(*)
INTO v_count
FROM basetab_810 b
WHERE b.groupuserflag = 1
AND rtrim(b.upnumber) = SUBSTR(v_upnum, 1, v_len - i);
IF v_count > 0
THEN
v_number := SUBSTR(v_upnum, 1, v_len - i);
v_sql := '
UPDATE ser_bills_temp
SET calledpartynumber = :a
WHERE rtrim(calledpartynumber) = :b
';
COMMIT;
BEGIN
EXECUTE IMMEDIATE v_sql
USING v_number, v_upnum;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
V_ERR_CODE := SQLCODE;
V_ERR_MSG := SUBSTR(SQLERRM, 1, 512);
INSERT INTO T_ERROR_DEBUG
VALUES
(V_ERR_CODE,
V_ERR_MSG,
SYSDATE,
v_sql || '_' || v_number || '_' || v_upnum);
COMMIT;
END;
END IF;
ELSE
EXIT;
END IF;
END LOOP;
END LOOP;
CLOSE cur_temp;
END PROC_DATAFILTER_NEW;
分享到:
相关推荐
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
oracle 存储过程实例 oracle存储过程实例
oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel
oracle 存储过程 unwrap 图形解密 工具
ibatis调用oracle存储过程分页
可以将SQL Server存储过程转为oracle存储过程的工具
oracle存储过程加密破解 0
帆软报表调用Oracle存储过程如果存储过程定义中没有参数,但是设计器中缺弹出一个storeParameter1参数的解决插件
oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记oracle存储过程笔记
oracle 存储过程批量提交
使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...
oracle存储过程学习经典入门 非常好的 初学者必看
oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, 参数2 IN NUMBER ) IS 变量1 INTEGER :=0; 变量2 DATE; BEGIN END 存储过程名字 2.SELECT INTO ...
oracle 存储过程 函数 dblink 绝对对工作和平时学习有价值的资料。针对个人具体情况做修改即可使用
Oracle存储过程中使用临时表 会话级临时表 事务级临时表
oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例 oracle 存储过程实例
4、开发指南:《Oracle存储过程入门指南&100+种真实业务场景存储过程实例.pdf》,可以帮助初学者系统学习。 5、资源包括“通用存储过程整理” 和 “真实业务存储过程整理” 两部分,通用适合各种系统,可以无缝隙...
行业内Oracle存储过程最基本的开法规范,适合oracle入门小白学习
linux系统中使用shell脚本对oracle存储过程进行编译
Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码