--pl/sql匿名塊
--匿名塊(宣告、執行體、異常處理)
declare
v_a integer;
v_b integer;
begin
v_a:=10;
v_b:=&請輸入第二個數:;
dbms_output.put_line('商:'||v_a/v_b);
dbms_output.put_line('積:'||v_a*v_b);
dbms_output.put_line('和:'||(v_a+v_b));
end;
--if
if 條件 then
語句
end if;
--if else
if 條件 then
語句 else --注意這裡沒有then
語句
end if;
-- if elsif else語法 (注意 elsif 而不是elseif)
if 條件 then
語句elsif 條件 then
語句elsif 條件 then
語言else
語句end if;
--1、select mod(10,3) from dual;
--2、邏輯運算子
--而且 and
--或者 or
--取非 not
mod(year,400)=0
或者 (mod(year,4)=0 and mod(year,100)!=0 )
--3、輸入乙個年份,判斷是不是閏年
declare
v_year integer;
begin
v_year:=&請輸入乙個年份:;
if mod(v_year,400)=0 or
mod(v_year,4)=0 and mod(v_year,100)!=0
then
dbms_output.put_line('是閏年!');
else
dbms_output.put_line('不是閏年!');
end if;
end;
--作業
--輸入部門編號,按照下列加薪比例執行(用if-elsif實現)。
deptno raise(%)
10 5%
20 10%
30 15%
40 20%
--加薪比例以現有的sal為標準。
declare
no emp.deptno%type;
rais number;
begin
no:=(&請輸入部門編號);
if no=10 then
rais:=1.05;
elsif no=20 then
rais:=1.1;
elsif no=30 then
rais:=1.15;
else
rais:=1.2;
end if;
update emp set sal=sal*rais where deptno=no;
end;
--1、接受2個數相除,並顯示結果,如果除數為0,則顯示錯誤提示。
--2、自己建立一張userinfo表,包含兩個欄位username,password,表中的記錄資訊取自emp表ename,empno欄位,寫乙個pl/sql程式,模擬登陸的過程,使用者分別輸入使用者名稱和密碼,對於登陸成功和失敗分別給出提示資訊.declare
m_id manageinfo.mid%type;
m_pass manageinfo.mpass%type;
m_count integer;
begin
m_id:='&m_id';
m_pass:='&m_pass';
select count(*)
into m_count
from manageinfo
where mid=m_id and mpass=m_pass;
if m_count!=0 then
dbms_output.put_line('登陸成功');
else
dbms_output.put_line('登陸失敗');
end if;
end;
--3、用userinfo表,寫乙個pl/sql程式,模擬註冊的過程,使用者分別輸入使用者名稱和密碼,對於登陸成功和失敗分別給出提示資訊.
declare
m_id manageinfo.mid%type;
m_name manageinfo.mname%type;
m_pass manageinfo.mpass%type;
m_count integer;
begin
m_id:='&m_id';
m_name:='&m_name';
m_pass:='&m_pass';
insert into manageinfo values(m_id,m_name,m_pass);
select count(*) into m_count from manageinfo where mid=m_id and mpass=m_pass;
if m_count!=0 then
dbms_output.put_line('登陸成功');
else
dbms_output.put_line('登陸失敗');
end if;
end;
匿名塊where條件使用變數(游標 集合)測試
總結 乙個變數只能獲取乙個值,但是如果想在where條件中使用多個值時可以定義乙個集合。create table t id number insert into t values 1 insert into t values 2 commit create table t1 id number,na...
oracle學習筆記 第七章 匿名塊
建立語法格式 declare 申明變數 begin 語句塊 end 常用語句 1,if 語句 if exp then elsif else end if 2,loop end loop語句 loop exit when exp 或用exit無條件退出,必須有退出條件,否則死迴圈 end loop 3...
建構函式,靜態塊,匿名構造塊
1,靜態塊 隨著jvm載入類的時候載入而執行 不管new多少次,只執行一次 如果乙個類中有多個static修飾的靜態 塊,按照先後順序執行。例 public class b public b static public static b t3 new b public static void mai...