PL/SQL学习笔记(四)-阿里云开发者社区

开发者社区> boxti> 正文

PL/SQL学习笔记(四)

简介:
+关注继续查看

这部分主要讲述在PL/SQL中如何访问oracle

(一)检索单行数据

在PL/SQL嵌入select语句,使用方法:

SELECT select_list INTO variable_name1,variable_name2,variable_name3... FROM TABLE WHRE condition

例:

 

None.gifDECLARE
None.gif  v_sal 
NUMBER ( 6 , 2 );
None.gif  v_id 
NUMBER ;
None.gif
BEGIN
None.gif  v_id:
= ' &id ' ;
None.gif  
SELECT  salary  into  v_sal  FROM  employee
None.gif  
WHERE  id = v_id;
None.gif
None.gif  dot.gif.
None.gif

 

需要注意事项:

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,如:

None.gifDECLARE
None.gif
None.gif  v_dept emp.deptno
% TYPE;
None.gif
None.gif
BEGIN
None.gif
None.gif  
UPDATE  emp  SET  sal = sal * 1.1   WHERE  deptno =& no;
None.gif
None.gif  
if  SQL % FOUND  then
None.gif
None.gif      dbms_output.put_line(
' 语句执行成功 ' );
None.gif
None.gif   
else
None.gif
None.gif      dbms_output.put_line(
' 语句执行失败 ' );
None.gif
None.gif   
end   if ;
None.gif
None.gif
END ;
None.gif
None.gif


(C)与SQL%FOUND相反的就是SQL%NOTFOUND

(D)SQL%ROWCOUNT ,用于返回SQL语句作用的行数

(三)事务控制语句

在PL/SQL中同样可以使用COMMIT,ROLLBACK,SAVEPOINT等事务控制语句,与直接使用没有什么不同。

文章转自庄周梦蝶  ,原文发布时间5.17

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
前端工程师的mysql笔记
背景 最近常参与后台php项目,虽说刚毕业时自学过一阵子php和mysql,不过长时间没用也忘差不多了,于是把mysql再温习一遍,前端同学也可以一起学习下! mysql安装以及操作 安装 brew install mysql 启动 $: mysql.
830 0
Oracle学习笔记_02_基本SQL
1.select语句   (1)语法 SELECT *|{[DISTINCT] column|expression [alias],...} FROM table; (2)示例: 选择全部列 SELECT * FROM departments; 选择特定列 SELECT department_id, location_id FROM departments;   (3)注意         SQL 语言大小写不敏感。
693 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7791 0
Oracle学习笔记_01_SQL初步
1.分类 SQL语句分为以下三种类型:        DML: Data Manipulation Language        数据操纵语言       DDL: Data Definition Language              数据定义语言       DCL: Data Control Language                  数据控制语言 2.
864 0
sqlserver学习笔记
排序函数:产生一个新的列,一般作为一个流水号排序函数  OVER( [分组子句] 排序子句[DESC][ASC] )(1)row_number():产生一个新的列流水号列,所有的流水号从1开始,然后累加(2)rank():产生一个新的列流水号列,所有的流水号从1开始,然后累加,如果排序子句内容重复,流水号也跟着重复.
578 0
SQL Server学习3
SQL Server服务的管理 SQL Server服务 可以提供数据的存储,处理,受控访问,是SQL Server系统最基本的服务 SQL Server Analysis Server服务 为商业智能应用程序提供分析处理(OLAP,on-line analysis processing)和数据...
996 0
SQL Serever学习4
SQL Server系统中数据库相关概念 在SQLServer数据库系统中分为2大类,系统数据库和用户数据库。 SQLServer安装后系统会自动生成4个系统数据库,他们是Master,Model,Msdb,Tempdb,系统数据库至少有2个文件组成,一个是扩展名为.mdf的数据库文件,一个是扩展名为.ldf的事务日志文件,他们存储在SQLServer默认安装路径下的MSSQL子目录下的Data文件夹中。
896 0
mysql学习笔记
修改table名字  alter table teacher rename teachers; 修改字段属性  alter table teacher modify id tinyint no...
400 0
+关注
boxti
12535
10037
文章
1327
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载