有两张表,要从一张表按照一定的条件给第二张表填数据,第二张表只有有限行,即要用两个游标双重循环,从第一张表中读取一个数据,对第二个表进行判断,满足条件就写入,没有就跳出。以此类推,直到第二张表写满停止。现在我不知道怎么写第一个游标的结束语句,求大神!!!!
解决方案 »
- Error in Open method. ORA-12560: TNS: 协议适配器错误
- 求一个存储过程 将库里所有表中指定的字符批量替换成别的字符
- oracle有没有可以赋值的变量?
- 知道所有的叶子结点,如何找到拥有这些叶子的全部的树!急!!急!!急!!在线等
- 用ADO连接ORACLE,用什么OLE DB不需要安装ORACLE客户端
- 我现在想学ORACLE,请问到哪里下载入门教程?或者给个入门教程的网址,到处搜了,找不到啊,谢谢!
- 清除回退段(难题,来者有分)
- 恳请赐教,nvl2()能这样用吗?
- 请求帮助(SQL语句方面,详细见内),谢谢!
- 大虾救命!。ora-01033 ORACLE initialization or shutdown in process
- 帮忙看下这段存储过程,可以执行,但是调用时候会报错
- 请教下。视图的内容如何批量查询出来
那你加个标志来说明表是否已满应该就可以了呀
那你加个标志来说明表是否已满应该就可以了呀
能稍微说具体一点吗?因为不一定是最后一行插入数据就结束,有可能中间的行会空出来继续检索
-- 这个不用使用游标 ,一个子查询就可以了Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.2.0
Connected as test@MSGDESQL>
SQL> col id format a10;
SQL> col name format a10;
SQL> col rq format a10;
SQL> create table a(id int, name varchar(10), rq int);
Table created
SQL> create table b(id int, name varchar(10), rq int);
Table created
SQL> begin
2 insert into a values(1,'a',1);
3 insert into a values(2,'s',1);
4 insert into a values(3,'s',1);
5 insert into a values(4,'a',1);
6 insert into a values(5,'a',1);
7 insert into a values(6,'a',2);
8 insert into a values(7,'s',2);
9 insert into a values(8,'dd',2);
10 end;
11 /
PL/SQL procedure successfully completed
SQL> insert into b
2 select * from a
3 where not exists(select * from a x where a.name =x.name and x.id < a.id);
3 rows inserted
SQL> select * from b order by id ;
ID NAME RQ
---------- ---------- ----------
1 a 1
2 s 1
8 dd 2
SQL> drop table a purge ;
Table dropped
SQL> drop table b purge ;
Table droppedSQL>
select distinct b.name,first_value(a.id) over (partition by a.name order by a.id) from a,b where a.name=b.name;
或
select distinct b.name,min(a.id) over (partition by a.name order by a.id) from a,b where a.name=b.name;
要是下次遍历时,排除已看过的邮件,则可以在第一张表里加上一个阅读标记