| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1338 人关注过本帖
标题:如何完成两个表数据的互相核对
只看楼主 加入收藏
第三只眼睛
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:2 
如何完成两个表数据的互相核对
我用的是oracle+pb,比如说,表1的结构是
a   b   
1   12
2   25
1   44
表2的结构是
a   b    c
1   44
4   55
所有列的类型是varchar2.
将表1中a列和b列的数据与表2中a列和b列的数据逐个对比,若相等,则将表2的c列置为1.上例

中表2的第一行符合条件,置为1.比对结束,若表1中有的行在表2中没有找到,则将该行置为1.

上例中表1的第一行、第二行均符合条件,置为1.
请问在oracle数据库中如何实现?
前台用pb开发,用游标嵌套但是总是死机不知道为什么。
游标代码:
string a1
string b1

string a2
string b2
string c2

declare cur_1 cursor for select a1,b1 from 表1;
declare cur_2 cursor for select a2,b2,c2 from 表2;

open cur_1;
fetch cur_1 into :a1,:b1;
do while sqlca.sqlcode=0
    open cur_2;
    fetch cur_cz into :a2,:b2,:c2;
    do while sqlca.sqlcode=0
        if a1 = a2  and b1=b2 then c1='1'
        loop
        close cur2;
loop
close cur_1;
没有报警,就是运行就死机。大家看下是什么原因?
还有如果在oracle里面写存储过程用pb调用可以么?
搜索更多相关主题的帖子: oracle 数据库 如何 开发 前台 
2014-04-17 19:28
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
收藏
得分:0 
看这句,肯定是死循环了哦!!!
在do while loop 循环中,没有为参数赋新值,所以这个循环永远执行的是第一条数据。无止尽执行下去。肯定死机!!

大家都是朋友,有空就来坐坐!
2014-04-21 09:23
qizhongshun
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:26
注 册:2011-9-16
收藏
得分:0 
肯定是循环出问题了 。
2014-04-25 18:06
快速回复:如何完成两个表数据的互相核对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020683 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved