第乙個pl/sql程式
--開啟輸出開關
set serveroutput on
/declare
--說明部分(變數,游標或者例外)
begin
--程式體
dbms_output.put_line(『helllo world』);
end;
/dbms_output:程式包
--檢視程式包的結構
desc dbms_output
pl/sql簡介
pl/sql(procedure language/sql)
plsql是oraclr對sql語言的過程化擴充套件
--指在sql命令語言中增加過程處理語句(如分子支、迴圈等),是sql語言具有過程處理能力。
不通過資料庫的sql擴充套件不同:
oracle:pl/sql
db2:sql/pl
sql server:transac-sql(t-sql)
pl/sql
的程式結構
declare
說明部分(變數說明、游標申明。例外說明)
begin
語句序列(dml語句)
exception
例外處理語句
end;
/定義基本變數
型別:char,varchar2,date,number,boolean,long
舉例:var1 char(15);
married boolean:=true;
psal number(7,2);
引用型變數
舉例:--my_name:變數名,emp:表名,ename:表裡面的欄位名
--把該字段型別作為該變數的型別,該欄位型別改變,引用的型別也會跟著改變。
my_name emp.ename%type;
set serveroutput on
declare
--定義引用型變數:查詢並列印7839的姓名和薪水
--pename emp.ename%type;
--psal emp.sal%type;
begin
--得到7839的姓名和薪水
select ename,sal into pename,psal from emp where empno=7839;
--列印姓名和薪水
dbms_output.put_line(pename||』的薪水是』||psal);
end;
/記錄型變數
舉例:--emp_res:變數名,emp:表名
-- 取表中一行的型別作為變數的型別,可以把記錄型變數理解為乙個陣列,陣列中的每乙個元素代表表中的每一列。
emp_res emp%rowtype;
記錄型變數的引用
emp_res.ename :=』adams』;
例:set serveroutput on
declare
--定義記錄型變數:代表一行
emp_rec emp%rowtype;
begin
--得到7839一行的資訊
select * into emp_rec from emp where empno=7839;
--列印姓名和薪水
dbms_output.put_line(emp_rec.ename||』的薪水是』||emp+rec.sal);
end;/if
語句 if 條件 then 語句1;
語句2;
end if;
if 條件 then 語句序列1;
else 語句序列2;
end if;
if 條件 then 語句;
elsif 語句 then 語句;
else 語句;
edn if;
if語句案例
/*判斷使用者從鍵盤輸入的數字
如何使用if語句
接收乙個鍵盤輸入(鍵盤輸入的都是字串)
*/select serveroutput on
accept num prompt 『請輸入乙個數字』;
declare
--定義變數儲存使用者從鍵盤輸入的數字
pnum number:=#
begin
--執行if語句進行條件判斷
if pnum=0 then dbms_output.output_line(『您輸入的數字是0』);
elsif pnum =1 then dbms_output.output_line(『您輸入的數字是1』);
elsif pnum=2 then dbms_output.output_line(『您輸入的數字是2』);
else dbms_output.put_line(『其他數字』);
end if;
end;
/迴圈語句 1、
while total <=25000 loop
…total:=total+sa;ary
end loop;
例:--使用while迴圈列印數字1-10
set serveroutput on
declare
--定義迴圈變數
pnum number:=1;
begin
while pnum<=10 loop
--迴圈體
dbms_output.put_line(pnum);
--使該變數+1
pnum:=pnum+1;
end loop;
end;/2、
loop
exit[when 條件]
……end loop;
例;--使用loop迴圈列印1-10
select serveroutput on
declare
--定義迴圈變數
pnum number:=1;
begin
loop
--退出條件:迴圈大於10
exit when pnum>10;
--列印該變數的值
dbms_output.put_line(pnum);
--迴圈變數+1
pnum:=pnum+1;
end loop;
end;/3、
for i in 1..3 loop
語句序列;
end loop;
例;--使用for迴圈列印1-10
set serveroutput on
declare
--定義迴圈變數
pnum number:=1;
begin
for pnum in 1..10 loop
dbms_output.put_line(pnum);
end loop;
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...
PLSQL語法基礎
變數普通變數宣告方式示例 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 f...
PL SQL之基礎語法
declare 說明部分 變數說明 游標申明 例外說明 begin 語句序列 dml語句 exception 例外處理語句 end 1 定義基本變數 2 型別 char,varchar2,date,number,boolean,long 3 舉例 var1 char 15 married boole...