一、最簡單的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;
/