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;