Oracle Database -PL/SQl Programming
oralce 经典习题系列
数据库数据类型
The problem
1 在PL/SQL中使用变量和常量。 2 编写一个算术表达式的例子。 3 编写一个IF语句的例子。 4 编写一个CASE语句的例子。 5 编写一个LOOP语句的例子。 6 编写一个异常处理的例子。
The answer
代码实现
--(1)在PL/SQL中使用变量和常量。
--(2)编写一个算术表达式的例子。
--(3)编写一个IF语句的例子。
--(4)编写一个CASE语句的例子。
--(5)编写一个LOOP语句的例子。
--(6)编写一个异常处理的例子。
--1-2 做一个圆形面积的计算
set serveroutput on;
declare
PI constant number(15.10) :=3.1415926;
RaidL number(10.3);
CircleArea number(15,3);
begin
RaidL :=5;
CircleArea := PI * power(RaidL,2);
SYS.DBMS_OUTPUT.PUT_LINE('圆形面积:'||CircleArea);
end;
--1-2.1
set SERVEROUTPUT ON ;
declare
today varchar2(20);
begin
today :=to_char(sysdate,'day');
dbms_output.put_line('today is '||today);
end;
--3编写IF语句的例子
set serveroutput on;
declare
n number(2);
n1 number(2);
begin
n:=5;
n1:=6;
if n>n1 then
dbms_output.put_line('n>n1');
else
dbms_output.put_line('n1>n');
end if;
end;
--case 语句的例子,根据查询pet表的值来输出结果
set serveroutput on;
declare
v_pet pet.species%type;
begin
select species into v_pet from pet where owner ='Harold';
CASE
WHEN v_pet = 'cat' THEN dbms_output.put_line('Harold like cat!');
when v_pet ='dog' then dbms_output.put_line('Harold like dog!');
when v_pet ='bird' then dbms_output.put_line('Harold like bird!');
when v_pet ='java' then dbms_output.put_line('Harold like java!');
end case;
end;
-- loop 语句的例子
--5.1 打印1-9
set serveroutput on;
declare
i number(3);
begin
i :=1;
loop
dbms_output.put_line(i);
i:=i+1;
exit when i > 9 ;
end loop;
end;
--5.2计算1-100内的偶数之和,i作为累加器 j计数 k做步长 i=i+k 步长值 0+2 ,2+4 ,2+4+6
set serveroutput on;
declare
i number :=0;
j number :=1;
k number :=2;
begin
loop
i:=i+j*k;
j:=j+1;
exit when j*k>100;
end loop;
dbms_output.put_line(i);
end;
--6处理异常 ,先制造出异常结果,然后通过 exception 捕捉并处理。
declare
v_spec pet.species%type;
begin
select species into v_spec from pet where name ='zs';
dbms_output.put_line(v_spec);
exception
when no_data_found then dbms_output.put_line('没有匹配的数据!');
end;
- 原文作者:Chenser
- 原文链接:https://chenser.neocities.org/post/oralce-database-pl-sql/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。