Oracle PL/SQL

第五章   第五章   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.




猜你喜欢

转载自x1ong.iteye.com/blog/1825020