- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pl-sql基础简介pl-ql基础简介pl-sql基础简介pl-sql基础简介
第6章 PL/SQL编程基础
6.1 PL/SQL介绍
在SQL*Plus环境下进行程序设计的语言称为PL/SQL(PL是Procedural Language的缩写),是Oracle的一种开发工具,是对SQL语言的一种扩充。在在PL/SQL中可以使用查询语句和数据操纵语句,也可以编写过程、函数、包及数据库触发器。
一个PL/SQL程序由一个或多个块组成。
块结构:
DELCARE
BEGIN
EXCEPTION
END;
写块时,每条语句以;结束
输出函数:
DBMS_OUTPUT是Oracle提供的包,该包中有一个函数用于输出一行字符串信息,DBMS_OUTPUT.PUT_LINE(字符串表达式);
DBMS_OUTPUT.PUT(字符串表达式); 表示输出字符串,但不换行
要使用上面两个函数输出数据,必须用下面命令设置环境变量
SET SERVEROUTPUT ON
表示打开DBMS_OUTPUT.PUT_LINE函数的屏幕输出功能,系统默认状态是OFF
例:简单输出一行
set serveroutput on;
begin
DBMS_OUTPUT.PUT_LINE(成都航空职业技术学院) ; --输出一行
end;
在PL/SQL程序中,最常见的是使用SELECT语句来从数据库中获取信息,同直接执行SELECT语句不同,在程序中的SELECT语句总是和INTO相配合,来获取查询结果,INTO后跟用于接收查询结果的变量,形式如下:
SELECT 列名1,列名2… INTO 变量1,变量2… FROM 表名 WHERE 条件;
注意:接收查询结果的变量类型、顺序和个数同SELECT语句的字段的类型、顺序和个数应该完全一致。并且SELECT语句返回的数据必须是一行,否则引发系统错误。如果查询结果是多行,则必须使用游标。
例:简单的PL/SQL程序:查询雇员编号为7788的姓名和工资。
SET SERVEROUTPUT ON
DECLARE
v_name VARCHAR2(10);
v_sal NUMBER(5);
BEGIN
SELECT ename,sal
INTO v_name,v_sal
FROM emp
WHERE empno=7788;
DBMS_OUTPUT.PUT_LINE(v_name||工资为:||to_char(v_sal));
END;
注意:如果在PL/SQL程序中使用不带into的select,将无法执行。
练习:写程序,查询雇员SMITH的工作和所在部门名称。
变量定义和赋值
普通变量
DECLARE
v_job VARCHAR2(9);
v_date date;
v_sal NUMBER(9,2) := 0;
BEGIN
v_job:=MANAGER;
v_date:=sysdate+7;
DBMS_OUTPUT.PUT_LINE(v_job);
DBMS_OUTPUT.PUT_LINE(v_date);
DBMS_OUTPUT.PUT_LINE(v_sal);
END;
字段类型变量
根据表的字段定义变量
SET SERVEROUTPUT ON
DECLARE
v_ename emp.ename%TYPE;
BEGIN
SELECT ename
INTO v_ename
FROM emp
WHERE empno = 7788;
DBMS_OUTPUT.PUT_LINE(v_ename);
END;
练习:根据表dept的dname字段定义一个字段变量,然后查询部门10的部门名称赋值给变量。
(3)记录变量
可以根据表或视图的一个记录定义变量。定义方法是在表名后跟%ROWTYPE。
记录变量定义方法是:
记录变量名 表名%ROWTYPE;
获得记录变量的字段的方法是:
记录变量名.字段名
【】SET SERVEROUTPUT ON
DECLARE
emp_record emp%ROWTYPE; --定义记录变量
BEGIN
SELECT * INTO emp_record
FROM emp
WHERE empno = 7788;
DBMS_OUTPUT.PUT_LINE(emp_record.ename);--输出记录变量的某个字段
DBMS_OUTPUT.PUT_LINE(emp_record.sal);
END;
练习:定义表dept
您可能关注的文档
- orico w150迷你无路由器使用说明书orico w150迷你无线路由器使用说明书orico w150迷你无线路由器使用说明书orico w150迷你无线路由器使用说明书.ppt
- p2p贷款企业宜信估值或超5亿美元p2p贷款企业宜信估值或超过5亿美元p2p贷款企业宜信估值或超过5亿美元p2p贷款企业宜信估值或超过5亿美元.doc
- p3u3教学课件p3u3教课件学课件.ppt
- page page ran算法page page rank算法page page rank算法page page rank算法.doc
- p&g促销策划.ppt
- paper writingaper writingpaper writingpaper writing.doc
- paragraph devlomentparagraph develomentparagraph develomentparagraph develoment.ppt
- pascal简单语句pasal简单语句pascal简单语句pascal简单语句.ppt
- paas sandbox 现原理分析paas sandbox 实现原理分析paas sandbox 实现原理分析paas sandbox 实现原理分析.ppt
- pascal中的if语句pscal中的if语句pascal中的if语句pascal中的if语句.ppt
- 2024年山东省城阳区《一级注册建筑师之建筑物理与建筑设备》资格考试内部题库及1套参考答案.docx
- 2024年山东省奎文区《执业药师之西药学专业一》资格考试完整版含答案AB卷.docx
- 2024年山东省城阳区《一级注册建筑师之建筑物理与建筑设备》资格考试必刷100题完整版含答案【实用】.docx
- 2024年山东省垦利区《一级注册建筑师之建筑物理与建筑设备》资格考试大全(必刷).docx
- 2024年山东省奎文区《一级注册建筑师之建筑物理与建筑设备》资格考试必背100题题库及答案(有一套).docx
- 2024年山东省垦利区《一级注册建筑师之建筑物理与建筑设备》考试内部题库附答案【培优A卷】.docx
- 2024年山东省垦利区《一级注册建筑师之建筑物理与建筑设备》资格考试必刷100题真题及答案【名师系列.docx
- 2024年山东省垦利区《一级注册建筑师之建筑物理与建筑设备》资格考试内部题库【必刷】.docx
- 2024年山东省城阳区《一级注册建筑师之建筑物理与建筑设备》考试题库附答案【突破训练】.docx
- 2024年山东省城阳区《一级注册建筑师之建筑物理与建筑设备》资格考试必背100题完整题库(易错题).docx
文档评论(0)