oracle學習PLSQL編程



lPL/SQL(ProceduralLanguage/SQL)
l一種過程化語言,經過增長編程語言的特色,實現對SQL的擴展
常使用declare,begin,end
--1) 循環插入15條數據
create table temp_table(
t_id number(6) not null

)sql

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;編程語言


DECLAREoop

    plsql varchar2(200);spa

    t_name varchar2(20):='John';數學

    t_id integer:='1002';it

BEGINio

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

    EXECUTE IMMEDIATE plsqlusingt_id,t_name;擴展

END;