`

pl/sql】将一个表中符合条件的记录拷贝到另一个表中

阅读更多
【pl/sql】将一个表中符合条件的记录拷贝到另一个表中
一、基本语句
insert   into   tablename fieldname   select   fieldname   from   tablename;
二、利用cursor及fetch将一个表中符合条件的记录拷贝到另一个表中 
晚上的时间,都是我自己的,我就好好的利用这个时间来学习学习ORACLE,去年学过的东西都忘得差不多了,现在趁机会还没有忘完之前拿起来。
今天看了一下匿名块、函数、过程等,想起原来用过光标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;
/


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jbgh608/archive/2007/10/24/1841461.aspx
分享到:
评论

相关推荐

    pl-sql-dev-8-chinese PL/SQL Developer 8 中文包

    pl-sql-dev-8-chinese PL/SQL Developer 8 中文包 资源里面还有安装程序 和 注册机 刚解决问题 所以贴出来和大家分享 注意:如果只需要单独的中文包 则只需要安装中文包以后 找到安装目录下的chinese.lang 文件...

    PL/SQL Developer汉化包

    通常,它位于"Program Files"下的一个特定文件夹内,如"C:\Program Files\PL/SQL Developer"。请根据你的实际安装路径来确定。 4. 拷贝汉化文件:在解压后的文件夹中,你会看到汉化的语言文件。这些文件通常是与PL/...

    pl/sql注册代码

    在探讨“PL/SQL注册代码”这一主题时,我们首先需要了解几个基本概念:PL/SQL(Procedural Language for SQL)是一种专为Oracle数据库设计的过程化编程语言,它将SQL命令与传统的程序流程控制语句相结合,允许开发...

    PL/SQL Developer中文语言包Chinese.lang及注册文件aalf.dat

    PL/SQL Developer Language Settings语言设置: 改为简体中文 菜 单 栏: Tools ->preferences->User Interface -> Appearance -> Language 从下拉菜单中选择 “Chinese.lang”。 Change to English MENU Bar: 工具 -...

    PL/SQL 7.1.5 汉化与破解文件

    PL/SQL 7.1.5 汉化与破解文件 该文件包含对PL/SQL 7.1.5版本的软件进行汉化与破解其中的一个注册文件只需解压之后拷贝到PL/SQL安装目录下即可 祝你好运!

    Pl_Sql导出表结构的插件(导出World文挡)

    "Pl_Sql导出表结构的插件(导出World文挡)"就是这样一个工具,它能够帮助我们快速、便捷地生成关于表结构的Word文档,这对于编写技术文档、项目报告或者数据库设计说明尤其实用。 在Oracle环境中,使用PL/SQL ...

    pl/sq7.1.5汉化+破解

    pl/sql7.1.5汉化+破解,破解时只需将汉化问价拷贝到安装目录下即可。

    instantclient_11_2 PL/SQL找不到数据库

    1.下载了一个instantclient_11_2包(随便放哪都行); 2.将你数据库安装路径下面的NETWORK文件夹(类似于F:\app\admin\product\11.2.0\dbhome_1\NETWORK)这个拷贝到instantclient_11_2里面去。 3.最后将plsql 里面...

    连接oracle,免安装PL/SQL

    1、把oracle_dll文件夹拷贝到D盘根目录下 2、配置“D:\oracle_dll\network\ADMIN”目录下的“tnsnames.ora”文件 3、打开“plsqldev.exe”,进入系统,右键点击“customize”,修改配置文件 绿点的地方表示需要修改...

    win7 64bit安装oracle64位运行pl sql develop方法

    - 在PL/SQL Developer的安装目录下创建一个名为`start.bat`的批处理文件,内容如下: ``` @echo off set path=E:\Oracle\product\instantclient_11_2 set ORACLE_HOME=E:\Oracle\product\instantclient_11_2 ...

    PL/SQL DEVELOPER 9.0.2 补丁

    直接去官网下载:http://www.allroundautomations.com/plsqldev.html?gclid=COjU2LaUiqwCFexS4godxXNnmw下载软件和语言包,然后安装,再把该补丁拷贝到安装目录下,就可以用!

    PL/SQL DEVELOPER 安装包,汉化包,开发教程

    12234227969.rar是注册文件拷贝到安装目录下,chinese.exe为汉化包,PLSQL Developer6.0.5.rar为安装包,PLSQL.Developer.7.0.rar为开发文档,大小一共21MB ,由于上传限制,共分为三个压缩包,还请一同下载,...

    Oracle常用pl_sql语句及示例.doc

    这条语句将表 a 中的数据拷贝到表 b 中。 三、显示文章、提交人和最后回复时间 在开发中,我们经常需要显示文章、提交人和最后回复时间。可以使用以下语句: ```sql SELECT a.title, a.username, b.adddate FROM ...

    oracle,如何在plsql里调用C语言写的程序,OCP漫漫路途之调用[收集].pdf

    例如,创建一个名为`call_c`的PL/SQL函数,它调用`calc_tax`函数并返回计算结果。 总结来说,Oracle中的PL/SQL调用C语言程序主要依赖于别名库、监听器配置、动态链接库和调用声明这四个关键元素。这种机制使得...

    Oracle PLSQL简单安装指南.doc

    ### Oracle PL/SQL 简单安装指南 #### 一、安装 Oracle 客户端 在进行 Oracle PL/SQL 的安装之前,首先需要安装 Oracle 客户端。本指南使用的是 Oracle 9i 的精简版客户端。 1. **打开安装文件**: - 打开已拷贝...

    PL/SQL远程备份和恢复Oracle数据库

    在客户端远程备份的文件保存在数据库所在主机上,不会直接拷贝到客户端。 ——————————————————————————————————————————  首先无论你的Oracle服务器是Linux还是windows...

    Oracle常用pl_sql语句及示例

    这将删除主表info中在副表info_bz中找不到的记录。 7. **比较两个历史版本之间的差异**: ```sql SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE FROM TABLE1 A, (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE...

Global site tag (gtag.js) - Google Analytics