利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中
来源:互联网 发布:linux历史命令文件 编辑:程序博客网 时间:2024/05/16 19:34
今天看了一下匿名块、函数、过程等,想起原来用过光标cursor及fetch,也是快忘得差不多了,那今天就来试试把一个表里面的数据拷贝到另外一个结构完全相同的表里面,不过,有一个条件就是原表的ID必须为5的倍数的才能够被插入,否则不取。
先来复习一点东西:
1、匿名块的格式基本就如下面所示
[declare]
/*变量定义区,也可做初使化等*/
begin
/*开始区,执行顺序SQL语句*/
[exception]
/*异常处理区,可进行异常处理,异常的抛出使用raise关键字*/
end;
其中方框里面的为可选项,不作为必须。
2、fetch
1)首先要定义cursor,如cursor id_cur is select id from components
2)然后打开cursor:open id_cur
3)第三是使用fetch从cursor并保存到变理中
4)第四关闭cursor
那就把上面说到的功能实现,代码如下:
- declare
- num_id integer;/*定义变量*/
- sql_str varchar(1000);
- cursor id_cur is select id from components;/*用光标取ID*/
- begin
- open id_cur;/*打开光标执行*/
- loop/*一直执行下去*/
- fetch id_cur into num_id;/*根据光标,取出ID号到变量中*/
- exit when id_cur%notfound;/*没有记录时就退出*/
- if mod(num_id,5)=0 then/*如果记录ID为5的倍数,就执行下面的插入*/
- /*下面生成一条SQL语句*/
- sql_str:='insert into components2 select * from components where id='|| num_id;
- /*立即执行生成的SQL语句*/
- execute immediate sql_str;
- end if;/*记住:条件的结束后都要加结束束‘;’*/
- end loop;
- close id_cur;/*关闭光标*/
- end;
- /
- 利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中
- 利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中
- 复制表数据——把一个dataTable中符合条件的信息添加到另一个新的DataTable中
- 将一个文件夹的内容拷贝到另一个文件夹中
- 将符合条件的文档从一个库拷贝到另一个库,并将文档从原库删除,压缩原库
- 将datatable里符合条件的记录取出添加到另一个datatable进行数据绑定!
- Java 并发将oracle表中记录利用JDBC迁移到同结构的另一个表中
- Sql 查询一个表中符合条件的且某一项为最大的记录
- 将一个表的数据插入到另一个表中
- 如何将一个位图拷贝到另一个位图中
- 在SQL中怎么样将一个表的的多条记录插入到另一个表中
- 在SQL中怎么样将一个表的的多条记录插入到另一个表中
- 拷贝一个表中的数据到另一个表中
- vim中如何将一个文件的内容拷贝到另一个文件中
- vim中如何将一个文件的内容拷贝到另一个文件中
- 将DataTable中满足条件的记录输入到另一个DataTable
- SQL server 2000 编写cursor,实现从另一个表中读取数据到一个表中。
- c语言读取每一行,再将符合条件的写入另一个文件中。
- PL/SQL学习笔记一
- ORACLE使用中的常见、实用的问题
- 在Oracle数据库中,用于数据备份的触发器及表结构
- 几个关于正确及错误PL/SQL对照使用的示例
- Oracle、SQL Server、Access利用SQL语句进行高效果分页
- 利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中
- LoadString的使用
- Oracle中利用一个表结构拷贝成另外的表
- 数据库设计三大范式应用实例剖析(讲得比较清楚)
- PL/SQL入门
- 杨朱的故事
- Oracle,sqlserver,mysql的自增变量设置
- UNIX 高手的 10 个习惯
- Oracle,sqlserver,mysql的自增变量设置