第五章 第五章 PL/SQL
SQL>set serveroutput on; --开启客户端输出
SQL>begin
2 dbms_output.put_line('世界、你好');
3 end;
4 /
-------------------------------------------------------------------------
变量输出
SQL>set serveroutput on;
SQL>declare(申明)
2 str(变量名) constant varchar(20) :='Oracle 11g'
3 begin
4 dbms_output.put_line(str);
5 end;
6 /
SQL>set serveroutput on; --开启客户端输出
SQL>begin
2 dbms_output.put_line('世界、你好');
3 end;
4 /
-------------------------------------------------------------------------
变量输出
SQL>set serveroutput on;
SQL>declare(申明)
2 str(变量名) constant varchar(20) :='Oracle 11g'
3 begin
4 dbms_output.put_line(str);
5 end;
6 /
-------------------------------------------------------------------
2013-03-06
判断语句
SQL> declare --申明变量
2 num integer :=1; --给变量赋值
3 begin --开始
4 if num<0 --如果num小于0
5 then dbms_output.put_line('负数'); --那么(then)num是负数
6 elsif num>0 --否则 num大于0 、
7 then dbms_output.put_line('正数');--那么num是正数
8 else --否则
9 dbms_output.put_line('0');--那么num是零
10 end if;
11 end;
12 /
正数
多层结构判断语句
SQL> declare
2 scooes integer :=80;
3 begin
4 if scooes>90
5 then
6 dbms_output.put_line('非常好');
7 elsif scooes >80
8 then
9 dbms_output.put_line('很好');
10 elsif scooes >70
11 then
12 dbms_output.put_line('不错');
13 elsif scooes >60
14 then
15 dbms_output.put_line('及格');
16 else
17 dbms_output.put_line('很差');
18 end if;
19 end;
20 /
不错
PL/SQL procedure successfully completed.
----------------------------------------------------------------------
选择语句
SQL> declare --申明
2 varday integer :=4; --给变量并且赋值
3 res varchar(20); --申明变量
4 begin --开始
5 res :=case varday --将arday对应的值赋给res
6 when 1 then '星期一' --在 varday 等于 1 的时候那么就是星期一
7 when 2 then '星期二' .........................
8 when 3 then '星期三' .........................
9 when 4 then '星期四'
10 when 5 then '星期五'
11 when 6 then '星期六'
12 when 7 then '星期天' --在 varday 等于 7 的时候那么就是星期天
13 end;
14 dbms_output.put_line(res);
15 end;
16 /
星期四
--------------------------------------------------------------------------
while循环语句
SQL> declare
2 v_num integer :=1;
3 v_sum integer :=0;
4 begin --开始
5 while v_num<11 loop --如果v_num小于11开始循环
6 v_sum :=v_sum+v_num; --将每次的值相加并且加上本身
7 dbms_output.put_line(v_num); --循环输出v_num的值
8 if v_num<11 --判断 如果v_num小于的11、
9 then dbms_output.put_line('+'); --那么每次打印一个+
10 end if; --判断结束 if和end if成对出现
11 v_num :=v_num+1; --每次让v_num自加1
12 end loop; --循环结束 while 条件表达式 loop和end loop成对出现
13 dbms_output.put_line('='); --循环结束 输出符号
14 dbms_output.put_line(v_sum); --最后打印结果值
15 end; --结束 begin和end成对出现
16 /
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
=
55
PL/SQL procedure successfully completed.
----------------------------------------------------------
for循环语句
SQL> declare
2 v_num integer ; --申明变量
3 v_sum integer :=0; --申明变量并且赋值
4 begin --开始
5 for v_num in 1..10 loop --循环开始 for 条件(1..10)从1开始、10结束
6 v_sum :=v_sum+v_num; --把每次的和相加
7 dbms_output.put_line(v_num); --循环输出v_num的值
8 if v_num<10 --如果v_num小于10的情况下
9 then --那么
10 dbms_output.put_line('+'); --循环输出+
11 end if; --if和end if成对、出现
12 end loop; --循环结束
13 dbms_output.put_line('=');
14 dbms_output.put_line(v_sum);
15 end; --命令结束 begin和end成对出现
16 /
1
+
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
=
55
PL/SQL procedure successfully completed.
-----------------------------------------------------------
异常
SQL> declare --申明
2 x number; --申明变量
3 begin --开始
4 x :='A123'; --给变量赋值
5 exception --异常捕捉开始
6 when value_error --在value的值错在错误
7 then --那么
8 dbms_output.put_line('错误'); --输出错误
9 end; --结束
10 /
错误
PL/SQL procedure successfully completed.
-------------------------------------------------
简单查询
SQL> declare
2 sumsal emp.sal%type; --申明一个变量 emp.sal%type(判断数据类型)
3 begin --开始
4 select sum(sal) into sumsal from emp group by deptno having deptno=30;--查询数据。将查到的数据放到变量中(sum(sal)[查到的数据] into sumsal[变量])
5 if sumsal > 5000 then --如果 查到的工资少于5000 那么.....
6 dbms_output.put_line('部门30的工资已经超出了预算,共'||sumsal);--提示超出预算、
7 end if; --if和end if成对出现
8 end; --结束
9 /
部门30的工资已经超出了预算,共9400
***********************************************
SQL> declare
2 s_ename emp.ename%type; --设置变量的数据类型
3 s_job emp.job%type;
4 s_sal emp.sal%type;
5 begin
6 select ename,job,sal into s_ename,s_job, s_sal from emp where empno=7902; --将查到的数据放到变量中ename,job,sal (前面都是查到的数据)into s_ename,s_job, s_sal(变量)
7 dbms_output.put_line('该员工姓名 '||s_ename||' 职位 '||s_job||' 工资 --字符串之间用||拼接
'||s_sal);
8 end; --结束
9 /
该员工姓名 FORD 职位 ANALYST 工资 3000
***************************************************
简单的比较
SQL> declare
2 t_sal emp.sal%type; --判断数据类型
3 begin
4 select sal into t_sal from emp where empno=7369; --查询数据放到变量中sal[查到的数据] into t_sal[变量]
5 case --case表示有以下几种结果
6 when t_sal <1000 --在t_sal小于1000
7 then --那么
8 dbms_output.put_line('低工资'); --输出提示
9 when t_sal >=1000 and t_sal < 3000--在t_sal大于1000小于3000
10 then --那么
11 dbms_output.put_line('一般工资'); --输出提示
12 else --否则
13 dbms_output.put_line('高工资'); --输出提示
14 end case; --case和case end成对
15 end;
16 /
低工资
PL/SQL procedure successfully completed.
Oracle PL/SQL
猜你喜欢
转载自x1ong.iteye.com/blog/1825020
今日推荐
周排行