`
sd8089730
  • 浏览: 251853 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

PL/SQL(三)

SQL 
阅读更多
定义数组(装的是一行类型)

declare
type ma is table of varchar2(20) index by binary_integer;
may ma;
begin
may(1):='嘿嘿';
may(2):='哈哈';
dbms_output.put_line(may(1)||chr(9)||may(2));
end;
/

 

For循环 直接执行 open  fetch close  直接输出
declare
cursor rs is select * from emp;
begin
for r in rs loop
dbms_output.put_line(r.ename);
end loop;
end;

 

把emp表放入数组中...

declare
type list is table of emp%rowtype index by binary_integer;
l list;
cursor rs is select * from emp;
v_count int:=0;
begin
for i in rs loop
v_count:=v_count+1;
l(v_count):=i;
end loop;
for i in 1..v_count loop
dbms_output.put_line(l(i).empno||chr(9)||l(i).ename);
end loop;
end;

 

输入部分编号显示部门名称 所在地 部员名

declare
cursor rs(v_empno emp.empno%type) is select dname,loc,ename,empno from emp,dept where emp.deptno=dept.deptno and empno=v_empno;
v_empno emp.empno%type;
v_dname dept.dname%type;
v_loc dept.loc%type;
v_empn emp.empno%type;
v_emp emp%rowtype;
begin
for i in rs(&empno) loop
dbms_output.put_line(i.ename||chr(9)||i.loc||chr(9)||i.dname);
end loop;
end;

 

输入部门编号 查询 所在地 和 员工名

declare
cursor rs(v_deptno emp.deptno%type) is select dname,loc,ename from emp natural join dept where deptno=v_deptno
begin
for r in rs(&deptno) loop
dbms_output.put_line(r.dname||chr(9)||r.loc||chr(9)||r.ename);
end loop;
end;
/

 

锁定当前行 current of cur_score;
没家where 条件的话修改所有 值

declare
 cursor cur_score is select rowid,grade from score for update;
begin 
for r in cur_score loop
 if r.grade=72 then
  update score set grade=83 where current of cur_score;
 elsif r.grade=83 then
update score set grade=95;
elsif r.grade=95 then
update score set grade=100 where current of cur_score;
end if;
end loop;
end;
结果:95  95 100
这里 先执行 缓存中的内容.. current of 就是和 缓存中的行 像对应  然后从上到下执行sql语句
执行完缓存里所有 数据之后 才保存到 数据库中..
游标变量
1、声明
游标名 sys_refcursor;
2、打开
 open 游标名 for 查询语句;
3、提取
fetch 游标名 into 变量;
4、关闭
 close 游标名;

查询dept表内容

查询 dname ename loc 内容

declare
rs sys_refcursor;
v_dept dept%rowtype;
v_ename emp.ename%type;
v_dname dept.dname%type;
v_loc dept.loc%type;
begin
open rs for select * from dept;
loop
fetch rs into v_dept;
exit when rs%notfound;
dbms_output.put_line(v_dept.deptno||chr(9)||v_dept.dname||chr(9)||v_dept.loc);
end loop;
close rs;
dbms_output.put_line('-----------------------------------------------');
open rs for select ename,dname,loc from emp,dept where emp.deptno=dept.deptno;
loop
fetch rs into v_ename,v_dname,v_loc;
exit when rs%notfound;
dbms_output.put_line(v_ename||chr(9)||v_dname||chr(9)||v_loc);
end loop;
close rs;
end;
 

 

分享到:
评论

相关推荐

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    pl/sql例题代码pl/sql例题代码pl/sql例题代码

    pl/sql developer11.0

    pl/sql developer11.0下载 pl/sql developer11.0下载 pl/sql developer11.0下载

    Oracle PL/SQL程序设计(第5版)(套装上下册)

    《Oracle PL/SQL程序设计(第5版)(套装上下册)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何...

    PL/SQL User's Guide and Reference (官方CHM)

    PL/SQL, Oracle's procedural extension of SQL, is an advanced fourth-generation programming language (4GL). It offers modern features such as data encapsulation, overloading, collection types, ...

    PL/SQL Developer9.06

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL ...

    Oracle PL/SQL语言初级教程

    PL/SQL是Oracle对标准数据库语言的扩展,Oracle公司已经将PL/SQL整合到Oracle 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本教程将以循速渐进的方式讲述PL/SQL基础语法,结构和组件、以及...

    pl/sql最新中文手册

    最新pl/sql7.0中文手册

    一个对数据库的操作工具PL/SQLpl/sqL工具

    一个对数据库的操作工具PL/SQL,能够对ORACLE\SQL进行很好的帮助操作!

    PL/SQL developer 12.07 注册码 可以使用

    PL/SQL developer 12.07 注册码 可以使用,不错,自己用过了,分享给大家

    PL/SQL Developer v8.0.3 1510

    PL/SQL Developer 8.0.3 1510 含注册机 PL/SQL Developer is an Integrated Development Environment that is specifically targeted at the development of stored program units for Oracle Databases. Over ...

    oracle10g_pl/sql

    oracle10g pl/sql完备教程,供初学者学习与开发者参考

    Pl/Sql程序设计

    1、PL/SQL简介 2、PL/SQL基础 3、记录和表 4、在PL/SQL中使用SQL 5、内置SQL函数 6、游标 7、过程和函数 ...

    pl/sql64位

    很多时候你是不是为了32为的plsql的各种复杂配置烦恼,不要紧,现在下载64位的pl/sql,不需要繁琐的配置,让你更轻松

    PL/SQL 程序设计

    PL/SQL 程序设计 本章主要重点:  PL/SQL概述  PL/SQL块结构  PL/SQL流程  运算符和表达式  游标  异常处理  数据库存储过程和函数  包  触发器

    PL/SQL免安装版

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加...

    PL/SQL Developer 客户端

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加...

    PL/SqlDeveloper汉化版

    用PL/SQL 是 Oracle公司在标准 SQL 语言上进行一定的扩展而形成的一种数据库语言。它寄托于传统的 SQL 语句,同时又在功能上做了不少的扩充。PL/SQL 有着太多的优势,甚至让SQL 在它面前也黯然失色。 PL/SQL ...

    DBAtools for PL/SQL表空间管理器

    PL/SQL Developer是Oracle数据库当前最流行的开发工具之一,它在ORACLE数据库开发设计方面功能强大,使用方便,但是数据库管理方面一直比较欠缺。 DBATools For PL/SQL Developer 是一款PL/SQL Developer的辅助插件...

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    PL/SQL Developer V7.1.4

    PL/SQL Developer是一种集成的开发环境,专门用于开发、测试、调试和优化Oracle PL/SQL存储程序单元,比如触发器等。PL/SQL Developer功能十分全面,大大缩短了程序员的开发周期。强大的PL/SQL编辑器,完善的Debugger...

Global site tag (gtag.js) - Google Analytics