Oracle PL/SQL

第五章第五章PL/SQL

SQL>setserveroutputon;--开启客户端输出

SQL>begin

2dbms_output.put_line('世界、你好');

3end;

4/

-------------------------------------------------------------------------

变量输出

SQL>setserveroutputon;

SQL>declare(申明)

2str(变量名)constantvarchar(20):='Oracle11g'

3begin

4dbms_output.put_line(str);

5end;

6/

SQL>setserveroutputon;--开启客户端输出

SQL>begin

2dbms_output.put_line('世界、你好');

3end;

4/

-------------------------------------------------------------------------

变量输出

SQL>setserveroutputon;

SQL>declare(申明)

2str(变量名)constantvarchar(20):='Oracle11g'

3begin

4dbms_output.put_line(str);

5end;

6/

-------------------------------------------------------------------

2013-03-06

判断语句

SQL>declare--申明变量

2numinteger:=1;--给变量赋值

3begin--开始

4ifnum<0--如果num小于0

5thendbms_output.put_line('负数');--那么(then)num是负数

6elsifnum>0--否则num大于0、

7thendbms_output.put_line('正数');--那么num是正数

8else--否则

9dbms_output.put_line('0');--那么num是零

10endif;

11end;

12/

正数

多层结构判断语句

SQL>declare

2scooesinteger:=80;

3begin

4ifscooes>90

5then

6dbms_output.put_line('非常好');

7elsifscooes>80

8then

9dbms_output.put_line('很好');

10elsifscooes>70

11then

12dbms_output.put_line('不错');

13elsifscooes>60

14then

15dbms_output.put_line('及格');

16else

17dbms_output.put_line('很差');

18endif;

19end;

20/

不错

PL/SQLproceduresuccessfullycompleted.

----------------------------------------------------------------------

选择语句

SQL>declare--申明

2vardayinteger:=4;--给变量并且赋值

3resvarchar(20);--申明变量

4begin--开始

5res:=casevarday--将arday对应的值赋给res

6when1then'星期一'--在varday等于1的时候那么就是星期一

7when2then'星期二'.........................

8when3then'星期三'.........................

9when4then'星期四'

10when5then'星期五'

11when6then'星期六'

12when7then'星期天'--在varday等于7的时候那么就是星期天

13end;

14dbms_output.put_line(res);

15end;

16/

星期四

--------------------------------------------------------------------------

while循环语句

SQL>declare

2v_numinteger:=1;

3v_suminteger:=0;

4begin--开始

5whilev_num<11loop--如果v_num小于11开始循环

6v_sum:=v_sum+v_num;--将每次的值相加并且加上本身

7dbms_output.put_line(v_num);--循环输出v_num的值

8ifv_num<11--判断如果v_num小于的11、

9thendbms_output.put_line('+');--那么每次打印一个+

10endif;--判断结束if和endif成对出现

11v_num:=v_num+1;--每次让v_num自加1

12endloop;--循环结束while条件表达式loop和endloop成对出现

13dbms_output.put_line('=');--循环结束输出符号

14dbms_output.put_line(v_sum);--最后打印结果值

15end;--结束begin和end成对出现

16/

1

+

2

+

3

+

4

+

5

+

6

+

7

+

8

+

9

+

10

+

=

55

PL/SQLproceduresuccessfullycompleted.

----------------------------------------------------------

for循环语句

SQL>declare

2v_numinteger;--申明变量

3v_suminteger:=0;--申明变量并且赋值

4begin--开始

5forv_numin1..10loop--循环开始for条件(1..10)从1开始、10结束

6v_sum:=v_sum+v_num;--把每次的和相加

7dbms_output.put_line(v_num);--循环输出v_num的值

8ifv_num<10--如果v_num小于10的情况下

9then--那么

10dbms_output.put_line('+');--循环输出+

11endif;--if和endif成对、出现

12endloop;--循环结束

13dbms_output.put_line('=');

14dbms_output.put_line(v_sum);

15end;--命令结束begin和end成对出现

16/

1

+

2

+

3

+

4

+

5

+

6

+

7

+

8

+

9

+

10

=

55

PL/SQLproceduresuccessfullycompleted.

-----------------------------------------------------------

异常

SQL>declare--申明

2xnumber;--申明变量

3begin--开始

4x:='A123';--给变量赋值

5exception--异常捕捉开始

6whenvalue_error--在value的值错在错误

7then--那么

8dbms_output.put_line('错误');--输出错误

9end;--结束

10/

错误

PL/SQLproceduresuccessfullycompleted.

-------------------------------------------------

简单查询

SQL>declare

2sumsalemp.sal%type;--申明一个变量emp.sal%type(判断数据类型)

3begin--开始

4selectsum(sal)intosumsalfromempgroupbydeptnohavingdeptno=30;--查询数据。将查到的数据放到变量中(sum(sal)[查到的数据]intosumsal[变量])

5ifsumsal>5000then--如果查到的工资少于5000那么.....

6dbms_output.put_line('部门30的工资已经超出了预算,共'||sumsal);--提示超出预算、

7endif;--if和endif成对出现

8end;--结束

9/

部门30的工资已经超出了预算,共9400

***********************************************

SQL>declare

2s_enameemp.ename%type;--设置变量的数据类型

3s_jobemp.job%type;

4s_salemp.sal%type;

5begin

6selectename,job,salintos_ename,s_job,s_salfromempwhereempno=7902;--将查到的数据放到变量中ename,job,sal(前面都是查到的数据)intos_ename,s_job,s_sal(变量)

7dbms_output.put_line('该员工姓名'||s_ename||'职位'||s_job||'工资--字符串之间用||拼接

'||s_sal);

8end;--结束

9/

该员工姓名FORD职位ANALYST工资3000

***************************************************

简单的比较

SQL>declare

2t_salemp.sal%type;--判断数据类型

3begin

4selectsalintot_salfromempwhereempno=7369;--查询数据放到变量中sal[查到的数据]intot_sal[变量]

5case--case表示有以下几种结果

6whent_sal<1000--在t_sal小于1000

7then--那么

8dbms_output.put_line('低工资');--输出提示

9whent_sal>=1000andt_sal<3000--在t_sal大于1000小于3000

10then--那么

11dbms_output.put_line('一般工资');--输出提示

12else--否则

13dbms_output.put_line('高工资');--输出提示

14endcase;--case和caseend成对

15end;

16/

低工资

PL/SQLproceduresuccessfullycompleted.

相关推荐