oracle学习PLSQL编程



lPL/SQL(ProceduralLanguage/SQL)
l一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展
常使用declare,begin,end
--1) 循环插入15条数据
create table temp_table(
t_id number(6) not null

)

declare 
       v_num number :=1;
begin
  loop 
   if v_num>15 then
      exit;
    end if;
    insert into temp_table values (v_num);
    v_num:=v_num+1;
  end loop;
end;
---2) 使用CASE语句判断并输出当前是星期几
declare 
  v_day varchar2(5):='2';
  v_result varchar2(50);
begin 
  
case v_day
  when '1' then v_result:='今天是星期一';
  when '2' then v_result:='今天是星期二';
  when '3' then v_result:='今天是星期三';
  when '4' then v_result:='今天是星期四';
  when '5' then v_result:='今天是星期五';
  when '6' then v_result:='今天是星期六';
  when '7' then v_result:='今天是星期日';
end case;
dbms_output.put_line(v_result);
end;
---3) 1) 创建用户表temp_emp
----编号:number类型
----姓名:varchar2(20) 类型
----年龄:number类型
-----2) 编写动态SQL语句,实现将编号为1001的用户名修改为“孙悟空”,然后显示修改后的信息
create table temp_emp(
t_no number not null,
t_name varchar2(20) not null,
t_age number not null
);
insert into temp_emp values (1001,'猪八戒',25);

insert into temp_emp values (1002,'唐僧',28);


select * from temp_emp;


declare 
v_id number;
v_name varchar2(20);
v_age number;
v_str varchar2(200);
begin
  v_str :='update temp_emp set t_name = :t1 where t_no = :t2 returning t_no,t_name,t_age into :t3,:t4,:t5';
  execute immediate v_str using '孙悟空',1001 returning into v_id,v_name,v_age; 
  dbms_output.put_line('编号:'||v_id||'    姓名:'||v_name||'   年龄:'||v_age);
end;
---4) 进行数学出发运算时,当被除数为0时,给出异常提示
declare
v_number1 number:=10;
v_number2 number:=0;
v_exception exception;
v_result number;
begin  
if v_number2=0 then
  raise v_exception;
end if;
v_result :=v_number1/v_number2;
dbms_output.put_line('结果是:'||v_result);
exception 
  when v_exception then
    dbms_output.put_line('0不能被整除。。。');

  end;


DECLARE

    plsql varchar2(200);

    t_name varchar2(20):='John';

    t_id integer:='1002';

BEGIN

    plsql:='insert intotemp_tablevalues(:1,:2)';

    EXECUTE IMMEDIATE plsqlusingt_id,t_name;

END;


你可能感兴趣的:(oracle学习PLSQL编程)