PLSQL語法基礎

2021-09-25 11:02:45 字數 3487 閱讀 9086

變數普通變數宣告方式示例

-- created on 2019/7/17 by zhou 

declare

v_name varchar(20);

v_sal number;

v_addr varchar(20);

begin

v_name:='張三';

v_sal:=10000;

select '長沙' into v_addr from dual;

dbms_output.put_line(v_name||',在'||v_addr||'薪資為:'|| v_sal);

end;

引用型變數宣告方式

-- created on 2019/7/17 by zhou 

--使用引用變數

declare

v_name emp.ename%type;

v_sal emp.sal%type;

begin

-- test statements here

select emp.ename into v_name from emp where emp.empno=7499;

select emp.sal into v_sal from emp where emp.empno=7499;

dbms_output.put_line(v_name||'-->'|| v_sal);

end;

分支語句:if…else

語法:if 條件表示式 then

語句;elsif 條件表示式 then

語句;else

語句;end if

示例:

-- created on 2019/7/17 by zhou 

declare

-- local variables here

record_num integer;

begin

-- test statements here

select count(*) into record_num from emp;

if record_num<10 then

dbms_output.put_line('行數不滿10條,number='||record_num);

elsif record_num>20 then

dbms_output.put_line('行數超過20條,number='||record_num);

else

dbms_output.put_line('行數在10~20條內,number='||record_num);

end if;

end;

迴圈語句:loop

語法:loop

exit when 退出條件;

語句;end loop;

示例:

-- created on 2019/7/17 by zhou 

declare

-- local variables here

num number:=1;

begin

loop

exit when num>10;

dbms_output.put_line(num);

num:=num+1;

end loop;

end;

游標

游標是sql結果集合中的指標,可以配合迴圈語句獲取其資料,游標有帶參游標和無參游標

語法:宣告游標

cursor 游標名 is sql語句;

開啟游標

open 游標名

關閉游標

close 游標名

獲取資料

fetch 游標名 into 變數

無參游標示例:

-- created on 2019/7/17 by zhou 

declare

-- local variables here

cursor c_emp is select emp.ename,emp.sal from emp;

vname emp.ename%type;

vsal emp.sal%type;

begin

-- test statements here

open c_emp;

loop

fetch c_emp into vname,vsal;

exit when c_emp%notfound;

dbms_output.put_line(vname||'---'||vsal);

end loop;

close c_emp;

end;

帶參游標示例:

-- 指定部門的員工姓名和薪資

-- created on 2019/7/17 by zhou

declare

--定義游標

cursor c_emp(v_dept emp.deptno%type) is select emp.ename,emp.sal from emp where emp.deptno=v_dept;

vname emp.ename%type;

vsal emp.sal%type;

begin

-- test statements here

open c_emp(10);

loop

fetch c_emp into vname,vsal;

exit when c_emp%notfound;

dbms_output.put_line(vname||'--'||vsal);

end loop;

end;

儲存過程

語法:create or replace procedure 儲存過程名(引數1 in/out 型別,引數2 in/out 型別,…)

begin

執行**塊;

end 儲存過程名

示例:查詢指定員工編號的薪資

--儲存檔案:

create or replace procedure ******_procedure(v_empno in emp.empno%type, v_sal out emp.sal%type) is

begin

select emp.sal into v_sal from emp where emp.empno=v_empno;

end ******_procedure;

呼叫檔案

-- created on 2019/7/17 by zhou

declare

v_sal emp.sal%type;

begin

******_procedure('7499',v_sal);

dbms_output.put_line(v_sal);

end;

PL SQL基礎語法

1.分支結構 pl sql中,使用if關鍵字作為分之結構的程式起始段。總體有以下幾種分支結構 1 if condition then statement end if 2 if condition then statement else then statement end if 3 if cond...

PL SQL之基礎語法

declare 說明部分 變數說明 游標申明 例外說明 begin 語句序列 dml語句 exception 例外處理語句 end 1 定義基本變數 2 型別 char,varchar2,date,number,boolean,long 3 舉例 var1 char 15 married boole...

PL SQL 概述與基礎語法

第乙個pl sql程式 開啟輸出開關 set serveroutput on declare 說明部分 變數,游標或者例外 begin 程式體 dbms output.put line helllo world end dbms output 程式包 檢視程式包的結構 desc dbms outpu...