PL/SQL学习笔记(四)
这部分主要讲述在PL/SQL中如何访问oracle
(一)检索单行数据
在PL/SQL嵌入select语句,使用方法:
SELECT select_list INTO variable_name1,variable_name2,variable_name3... FROM TABLE WHRE condition
例:
v_sal NUMBER ( 6 , 2 );
v_id NUMBER ;
BEGIN
v_id: = ' &id ' ;
SELECT salary into v_sal FROM employee
WHERE id = v_id;
.
需要注意事项:
1.不仅可以使用普通标量接受数据,也可以使用Record接受数据
2.使用的SELECT语句必须返回一条记录,并且只能返回一条记录,否则会触发PL/SQL异常,或者显示错误信息
(1)NO_DATA_FOUND异常,当没有数据返回时抛出此异常
(2)TOO_MANY_ROWS异常,返回多条数据时抛出此异常
(3)在WHERE子句中使用变量时必须注意,变量名不能字段名相同,否则会触发TOO_MANY_ROWS异常
(二)使用DML语句
1.在PL/SQL中使用DML语句(insert,update,delete)语句与直接在sqlplus使用没什么不同,只不过可以使用变量代替具体的值,不再举例
2.SQL游标:
(1)在执行SELECT,INSERT,UPDATE,DELETE语句时,Oracle Server会为这些SQL语句分配相应的Context Area,并且Oracle使用此Context Area解析并执行相应的SQL语句,而游标就是指向Context Area的指针。在oracle中,游标又分为显式和隐式两种,其中隐式游标又被成为SQL游标,专门用于处理SELECT INTO,INSERT,DELETE,UPDATE语句。而显式游标多用于处理多行的SELECT语句。
(2)SQL游标的四种属性:
(A) SQL%ISOPEN
用于确定SQL游标是否打开。因为oracle在执行SELECT INTO,INSERT,UPDATE,DELETE语句时会隐含着打开游标,并在执行结束后关闭。所以此值对于开发人员来说一直是false,实际开发中不需要此属性
(B) SQL%FOUND
用于确定SQL语句是否执行成功,当SQL语句有作用行时,它为TRUE,否则为FALSE,如:
v_dept emp.deptno % TYPE;
BEGIN
UPDATE emp SET sal = sal * 1.1 WHERE deptno =& no;
if SQL % FOUND then
dbms_output.put_line( ' 语句执行成功 ' );
else
dbms_output.put_line( ' 语句执行失败 ' );
end if ;
END ;
(C)与SQL%FOUND相反的就是SQL%NOTFOUND
(D)SQL%ROWCOUNT ,用于返回SQL语句作用的行数
(三)事务控制语句
在PL/SQL中同样可以使用COMMIT,ROLLBACK,SAVEPOINT等事务控制语句,与直接使用没有什么不同。
文章转自庄周梦蝶 ,原文发布时间5.17
PL/SQL学习笔记(四)相关推荐
- 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)
Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...
- Oracle之PL/SQL学习笔记之有名块练习
2019独角兽企业重金招聘Python工程师标准>>> Oracle之PL/SQL学习笔记之有名块练习 存储过程案例: 案例1: 根据雇员姓名跟新雇员工资,如果雇员不存在输出没有该雇 ...
- PL/SQL学习笔记(二)
定义并使用变量 PL/SQL有四种类型:标量类型,复合类型,引用类型(reference),LOB(Large Obejct)类型 一.标量类型 最常用的就是标量类型,是指只能存放单个数值的变量,包括 ...
- PL/SQL学习笔记之存储过程
一:PL/SQL的两种子程序 子程序:子程序是执行一个特定功能.任务的程序模块.PL/SQL中有两种子程序:函数 和 过程. 函数:主要用于计算并返回一个值. 过程:没有直接返回值,主要用于执行操 ...
- PL/SQL学习笔记-常量变量及数据类型初步
一:常量和变量 开始之前,还是照例做个经典的例子,如下: declare mydate varchar2(16) := 'hellow world'; begindbms_output.put_lin ...
- PL/SQL学习笔记-循环控制与顺序控制
一:LOOP...END LOOP 先看代码 declare v_flag number := 1; begin loop exit when v_flag>16;v_flag := v_fla ...
- PL/SQL学习笔记(二)—— 执行语句
一.语法 execute immediate SQL语句/PLSQL代码块 into 变量 [using 参数1,参数2,--]: using后面的参数要与into后面的变量及变量的数据类型对应起来 ...
- PL/SQL学习笔记-过程
一:创建和修改一个过程 create or replace procedure xland_proc (v_title in varchar2,v_int out number) is v_char ...
- 经典SQL学习笔记 (四)-子查询
子查询 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强大的复合命令.子查询最常用于SELECT-SQL命令的WHERE子句中.子查询是一个 SELECT 语句,它嵌 ...
最新文章
- Docker源码分析(二):Docker Client创建与命令执行
- 分享:When.js 2.0.0 发布,Promises/A 的实现
- 计算机学院 年度工作计划,计算机教研组年度工作计划
- 蓝桥杯 2017年C语言混搭 C/C++
- c语言人事管理系统,c语言人事管理系统
- Xamarin.Android 使用 SQLite 出现 Couldn't read row 0, col -1 from CursorWindow. 异常
- linux 3.2.0 卸载,linux python3编译以及 卸载,python默认为python3 ,pip默认为pip3,亲测版...
- 贪吃蛇php代码下载,C语言贪吃蛇代码
- 12个免费在线Logo生成器
- 微信小程序生成海报并保存到本地(附带二维码生成)
- uploadify html5 java_工作中碰到uploadify插件两个版本:HTML5和Flash
- 深入理解Java虚拟机——Parallel Old收集器
- 霍夫变换c语言程序,霍夫变换 | Cauthy's Blog
- 完全用Linux:半年来,Linux高效完成我所有的工作!(转贴)
- 保险巨头安盛将推出代币众筹保险服务
- 什么是 计算机文档,电脑上哪个 我的文档是干什么用的
- 列主元素消去法的Matlab实现
- 多校联考 CSP-J 2019 第三次模拟赛 题解
- 《浪潮之巅》作者吴军万字长文:中国算力的危与机
- PAT乙级 1048. 数字加密(20)
热门文章
- python最全知识点_史上最全的Python面向对象知识点疏理
- 服务器连接异常系统无法登录,win10系统无法登录LOL提示“服务器连接异常”的解决方法...
- 脱式计算机在线使用,脱式计算,
- 的技术难点_马铃薯收获机研究的技术难点与使用注意事项
- git add remote_收藏向 | Git命令与原理速查手册
- php js获取file,PHP file_get_contents 读取js脚本的问题
- 【技术综述】基于弱监督深度学习的图像分割方法综述
- 全球及中国太阳能光伏发电产业规模容量调研及投资可行性研究报告2021-2027年
- 中国水务行业运行状况调研与投资前景规划预测报告2022-2027年新版
- 仅通过崩溃地址找出源代码的出错行