ORACLE 匿名塊 變數 if

2021-08-21 11:55:24 字數 2840 閱讀 7083

--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...