2018.5.30 Oracle数据库PLSQL编程---游标的使用
显示游标的步骤
/*
显示游标处理步骤
1.声明游标
语法结构:cursor 游标名称 is SQL 语句;
2.打开游标
语法结构:open游标名称;
3.提取数据
语法结构:fetch
4.关闭游标
*/
1.显示员工表中的姓名(返回的是多条记录,必须使用游标来处理)
set serveroutput on;--设置plslql显示结果命令
--代码块
declare
--变量
--1.声明游标
cursor c_emp is select ename,sal from emp;
v_ename emp.ename%type;
v_sal emp.sal%type;
begin
--代码块
--2.打开游标
open c_emp;
--使用loop循环
loop
--3.提取数据
fetch c_emp into v_ename,v_sal;
exit when c_emp%notfound; --判断游标是否还有数据
--输出信息
dbms_output.put_line('姓名:'||v_ename||',工资:'||v_sal);
end loop;
end;
/
--4.关闭游标
close c_emp;
end;
--2.record类型实现
declare
cursor c_emp is select ename,sal from emp;
type type_emp is record(
v_ename emp.ename%type,
v_sal emp.sal%type
);
v_record type_emp;
begin
--代码块
--2.打开游标
open c_emp;
--使用loop循环
loop
--3.提取数据
fetch c_emp into v_record;
exit when c_emp%notfound; --判断游标是否还有数据
--输出信息
dbms_output.put_line('姓名:'||v_record.v_ename||',工资:'||v_record.v_sal);
end loop;
--4.关闭游标
close c_emp;
end;
--3.扩展:使用游标类型来转换
declare
cursor c_emp is select ename,sal,dname,loc from emp e,dept d where e.deptno=d.deptno;
v_cursor_emp c_emp%rowtype;
begin
--代码块
--2.打开游标
open c_emp;
--使用loop循环
loop
fetch c_emp into v_cursor_emp;
--3.提取数据
exit when c_emp%notfound; --判断游标是否还有数据
--输出信息
dbms_output.put_line('姓名:'||v_cursor_emp.ename||',工资:'||v_cursor_emp.sal || '部门名字:'||v_cursor_emp.dname);
end loop;
--4.关闭游标
close c_emp;
end;
--4.for(声明游标即可)
declare
cursor c_emp is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;
begin
for i in c_emp loop
dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname);
end loop;
end;
--5.带参数的游标
declare
cursor c_emp(v_deptno emp.deptno%type)is select ename,sal,dname,loc from emp e,dept d where d.deptno=e.deptno;
begin
for i in c_emp(&n) loop
dbms_output.put_line('姓名:'||i.ename|| '工资:'||i.sal||'部门名称'||i.dname||i.dname);
end loop;
end;
--6.触发器
create or replace trigger t_1
after
insert on emp
begin
dbms_output.put_line('数据已经插入');
end;
insert into emp(empno,ename) values(11,'Legend');
2018.5.30 Oracle数据库PLSQL编程---游标的使用的更多相关文章
- Oracle数据库PLSQL编程和存储过程
一.PLSQL编程 1.1.使用PLSQL实现 Hello world! 1 -- Created on 2022/8/22 by ADMINISTRATOR 2 declare 3 -- 这是申明变 ...
- 用Excel导入Oracle数据库plsql
打开plsql之后,在工具栏点击[tools]--[ODBC Imoprter] 选择导入文件的类型,这里是excel文件,所以选择Excel Files 输入连接数据库的用户名和密码 点击Conne ...
- Oracle数据库PLSQL的中文乱码显示全是问号
plsql连接数据库乱码问题 缘由: 小师妹周末叫我帮她重装数据库,这么大好的周末时光不出去玩儿,给她装数据库这不是很蛋疼么. 我问她为什么要重装,她说:数据存入数据库后,中文字符有乱码,一定是我上次 ...
- 2018.6.4 Oracle数据库预定义的异常列表
declare v_ename emp.ename%type; begin select ename into v_ename from emp where empno=&gno; dbms_ ...
- 2018.6.5 Oracle plsql编程 游标的使用
--3.查询10部门所有员工的姓名.(ref游标实现) 动态游标 declare --创建一种游标类型 type type_cursor is ref cursor; --声明变量指定游标类型 v_c ...
- 2018.7.30 Oracle的Blog数据库类型读取和存
package com.lanqiao.shopping.test; import java.io.BufferedInputStream; import java.io.BufferedOutput ...
- Oracle基础 PL-SQL编程基础(4) 异常处理
异常处理: 即使良好的PL-SQL程序也会遇到错误或者未预料的事件,一个优秀的程序都应该能够处理各种出错情况,尽可能的从错误中恢复.程序在运行时出现的错误成为异常.发生异常后,语句讲终止执行,PLSQ ...
- Oracle基础 PL-SQL编程基础(1) 变量和常量
一.什么是PL-SQL PL-SQL是结合了Oracle过程语言和结构化查询语言(SQL)的一种扩展语言.具体来说,PL-SQL就是在普通的SQL语句的基础上增加了编程语言的特点,将数据操作和查询语句 ...
- 2018.5.9 Oracle数据库查询命令
0.查询所有数据(最简单,但是时间很久) select * from emp; Result: EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- - ...
随机推荐
- 2017-10-20 NOIP模拟赛
Lucky Transformation #include<iostream> #include<cstring> #include<cstdio> using n ...
- 由奇葩cookie导致服务器500来认识cookie
问题:cookie中文会导致服务器报500错误. 一:cookie的特点 1.以键值对的形式出现的,比如:a=b;b=c 2.中文的值需要转义 cookie的例子 <!DOCTYPE html& ...
- 如何顺畅使用sourcetree可视化工具
http://www.360doc.com/content/17/0711/10/11253639_670493403.shtml sourcetree软件下载 下载地址:https://www.so ...
- 华东交通大学2017年ACM“双基”程序设计竞赛 1005
Problem Description 假设你有一个矩阵,有这样的运算A^(n+1) = A^(n)*A (*代表矩阵乘法)现在已知一个n*n矩阵A,S = A+A^2+A^3+...+A^k,输出S ...
- 匿名内部类(new类时覆盖类中方法)
public class Person { private String name ; protected String getName() { return name; } public void ...
- Dede友情链接和分页列表和内容分页去掉小圆点LI标签
我用了一个比较老式的模板,友情链接和列表页底下的一段分页导航会自动获取LI标签,导致错位.每段文字前还多出一个可恶的黑色实心小圆点,心想肯定是LI标签在搞怪,于是把模板文件和样式文件都翻看了一个底朝天 ...
- java Smaphore 控制并发线程数
概念: Semaphore(信号量)是用来控制同事访问特定资源的线程数量,它通过协调各个线程,已保证合理的使用公共资源. 应用场景: Semaphore 可以用于做流量控制,特别是共用资源有限的应用场 ...
- matlab 常用函数(数学建模-复习)
常用函数 fscanf(fid, '%c', inf) -> 直接读取整个文件, 因为inf表示无穷 strtrim char(num): 将num转为ASCII字符 strtok(conten ...
- JS文本框输入限制
1上面的文本框只能输入数字代码(小数点也不能输入): CODE: <input onkeyup="this.value=this.value.replace(/\D/g,'')&quo ...
- win8.1x64下完美运行IE6
IE6我相信是所有前端人员永远都绕不过去的坎,操作的版本越来越高,离xp越来越远,难道你还在win8下安装个虚拟机来运行IE6吗?这样即消耗系统资源,来回的切换也麻烦,关键是只为了一个测试哦,没必要这 ...