PL/SQL程序(一)

例一:在屏幕上显示hello World字样
Java程序
Public static void main(String[] args){
	System.out.println(“hello World”);
}
PL/SQL程序
SQL> declare
  2  begin
  3  dbms_output.put_line('hello  World');
  4  end;
  5  /
注意:如果要在屏幕上输出信息,需要将serveroutput开关打开
SQL>   set serveroutput on;

什么是PL/SQL?
1、PL/SQL(Procedure Language/SQL)
2、PLSQL是Oracle对sql语言的过程化扩展
3、指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。

Sql优点:
1、	交互式非过程化
2、	数据操纵功能强
3、	自动导航语句简单
4、	调试容易使用方便

例二:为职工长工资,每人长10%的工资
Update emp set sal=sal*1.1;
注:把sql语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比工程语言简单、高效、灵活和实用。

PL/SQL程序结构
Declare
	说明部分(变量说明,光标申明,例外说明)
Begin
	语句序列(DML语句)
Exception
	例外处理语句
End;/

变量和常量说明
Var1 char(15); 说明变量名、数据类型和长度后用分号结束说明语句                                                                                                                                                                                                                                                                                                                                                                                                                                                  
My_name emp.ename%type; 引用型变量,既my_name的类型与emp表中ename列的类型一样
Emp_rec emp%rowtype;  记录型变量

If语句
1.      IF   条件  THEN 语句1;
       语句2;
        end if;
2. IF  条件  THEN  语句序列1;   
    ESLE   语句序列 2;
    END   IF;
3. IF   条件  THEN 语句;
   ELSIF  语句  THEN  语句;
  ELSE    语句;
 END  IF;

例三:If语句示例:
要求:从键盘输入,并判断用户输入的数字
declare
 pnum number:=#
 begin
if pnum>10 then
dbms_output.put_line('变量值大于10');
elsif pnum=10 then
dbms_output.put_line('变量值等于10');
else 
dbms_output.put_line('变量小于10');
end if ;
end;
提示:从键盘输入:
accept num prompt '请输入一个数字';
得到键盘输入的值:
		pnum number := #

循环语句:
1、WHILE  total  <= 25000  LOOP
.. .
total : = total + salary;
END  LOOP;
2、FOR   I   IN   1 . . 3    LOOP
语句序列 ;
END    LOOP ; 
3、Loop
EXIT [when   条件];
……
End loop

例四:循环语句示例:
输出数字1—10
方法一:
declare
num number := 1;
begin
  while num<=10
loop
  dbms_output.put_line(num);
  num :=num+1;
end loop;
end;

方法二:for方法
declare
num number := 10;
begin
  for num in 1..10
loop
  dbms_output.put_line(num);
end loop;
end;

方法三:
declare
num number := 1;
begin
loop
  exit when num>10;   -----当num>10的时候停止执行
  dbms_output.put_line(num);
  num :=num+1;
end loop;
end;

阅读更多
上一篇关于oracle中的in 和 exist
下一篇PL/SQL程序之光标
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭