一、最简单的PL/SQL程序
- 打印Hello World
注意:如果要在屏幕上输出信息,需要将serveroutput开关打开
set serveroutput on
declare
--说明部分(变量,光标或例外)
begin
--程序体
dbms_output.put_line('Hello World');
end;
/
二、什么是PL/SQL程序?
PL/SQL (Proceduce Language/SQL)
PLSQL是Oracle对sql语言的过程化扩展
指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力
1、PL/SQL 是对SQL语言的扩展
2、PL/SQL是面向过程的语言
三、PL/SQL的提出
例1.为职工涨工资,每人涨10%的工资。
update emp set sal=sal*1.1;
特点:命令式的语言
例2.按职工的职称涨工资,总裁涨1000元,经理涨800元,其他员工涨400元。
不同数据库的SQL扩展:
Oracle:PL/SQL DB2:
SQL/PL SQL Server:
Transac-SQL(T-SQL)
四、PL/SQL 基础语法
1、PL/SQL的程序结构
declare
说明部分(变量说明、光标申明、例外说明)
begin
语句序列(DML语句)
exception
例外处理语句
end;
/
2、说明部分
(1)定义基本变量
类型:char,varchar2, date,number,boolean,long
举例:
varl char(15);
married boolean := true;
psal number(7,2);
set serveroutput on
--使用基本变量类型
declare
--定义基本变量类型
--基本数据类型
pnumber number(7,2);
--字符串变量
pname varchar2(20);
--日期变量
pdate date;
begin
pnumber := 1;
dbms_output.put_line(pnumber);
pname := 'Tom';
dbms_output.put_line(pname);
pdate := sysdate;
dbms_output.put_line(pdate);
--计算明天的日期
dbms_output.put_line(pdate + 1);
end;
/
(2)引用型变量
举例:
my_name emp.ename%type;
--引用型变量
set serveroutput on
declare
--定义引用型变量:查询并打印7839的姓名和薪水
--pename varchar2(20) ;
--psal number ;
pename emp.ename%type;
psal emp.sal%atype;
begin
--得到7839的姓名和薪水
select ename,sal into pename, psal from emp where empno = 7839;
--打印姓名和薪水
dbms_output.put_line(pename||'的薪水量是'||psal) ;
end;
/
(3)记录型变量
举例:
emp_rec emp%rowtype;
记录型变量分量的引用
emp_rec.ename := ‘ADAMS’;
--使用记录变量,查询并打印7839的姓名和薪水
set serveroutput on
declare
--定义记录型变量:注意代表一行
emp_rec emp%rowtype;
begin
--得到7839的一行信息
select * into emp_rec from emp where empno = 7839;
--打印姓名和薪水
dbms_output.put_line(emp_rec.ename|| '的薪水量是'|| emp_rec.sal);
end;
/