带游标的存储过程的使用
来源:互联网 发布:中医之钥 知乎 编辑:程序博客网 时间:2024/05/17 04:58
老大布置了个任务,将一个表中几个字段同步到另一个表。
第一想法是去公司图书馆找相关的书,七翻八翻找到《Oracle PL/SQL实例精讲》一书,如获至宝,昼夜读之,大有收获。
于是乎,一边翻书,一边百度,一边代码,历时两天,终于完成。
表结构如下
本机测试代码如下:
create or replace procedure pro_test(str out varchar2)is CURSOR c_wawa is SELECT ID,userName,userAge,userNumber FROM wawa WHERE sync_flag=1; cst_sync_flag CONSTANT integer := 0; cst_sync_max CONSTANT integer := 3; vr_wawa c_wawa%ROWTYPE; vr_date DATE; vr_count integer; begin OPEN c_wawa; SELECT sysdate into vr_date from dual; vr_count := 0; loop FETCH c_wawa into vr_wawa; -- 游标结束或超过最多同步数量时,退出循环 EXIT WHEN (c_wawa%NOTFOUND OR (vr_count > cst_sync_max)); UPDATE test set test.userName = vr_wawa.username, test.userAge = vr_wawa.userage, test.userNumber = vr_wawa.usernumber, test.sync_date = vr_date WHERE test.id = vr_wawa.id; UPDATE wawa set wawa.sync_flag = cst_sync_flag WHERE wawa.id = vr_wawa.id; vr_count := vr_count + 1; END loop; SELECT username into str from wawa where ID =1; CLOSE c_wawa;end;
总结:今天一个上午都在纠结 update那一句。仿真时候,刚开始一切正常,半路上莫名其妙的出错,单步跟踪只要一运行到这一句,PL/SQL就卡死状态,百思不解。一个偶然关了DOS CMD窗口,测试OK,好吧,猜测估计是当SCOTT通过CMD窗口登录到ORCALE时候,仿真SCOTT用户下的表会出点儿问题。
- 带游标的存储过程的使用
- 带游标的存储过程
- 带游标的存储过程
- 《带游标的存储过程的使用》存储过程不使用游标的另一种写法
- SQL Server带游标的存储过程
- 不带游标的存储过程
- oracle带游标的存储过程
- 带游标的相互调用的存储过程
- 一个简单的带游标的存储过程
- 存储过程及游标的使用
- oracle存储过程和游标的使用
- oracle存储过程与游标的使用
- PLSQL游标的使用_存储过程
- oracle存储过程和游标的使用
- oracle 存储过程和游标的使用
- 存储过程与游标的配合使用
- oracle存储过程和游标的使用
- Oracle 存储过程、游标的使用
- maven source 1.3 中不支持泛型 解决办法
- HEVC中的帧间预测
- crontab 常见 /dev/null 2>&1 详解
- flash与js跨域调用
- 在iOS虚拟键盘上添加动态隐藏按钮
- 带游标的存储过程的使用
- 获取选中的第一个radio的值
- VIM分屏功能
- Ajax入门的例子
- 读JSE源码(三)集合之TreeSet
- HDU 1012 uCalculate e
- 安装配置Django开发环境(Eclipse + Pydev)
- ASPxGridView 结合CheckBox实现多选(在后台事件代码控制)
- 转 -- 阿里巴巴公司DBA笔试题