,謝謝
sql語言不可以使用邏輯處理結構
pl/sql就將sql語言和程式語言結合在一起
在sql語言的基礎上增加了程式語言的特性,其實還有引數傳遞和sql**重用的優勢
其基本結構如下
包括了宣告部分,程式段開始,程式段結束,異常處理
宣告部分和異常部分是可選的
變數的宣告,它的有效作用域僅僅限於當前的程式塊,出了當前程式塊就沒用了
需要注意的是
declear,begin和exception後沒有分號。而end以及所有的sql語句和pl/sql語句必須以分號結束
pl/sql程式和資料庫進行通訊的時候,也需要實現資訊的儲存和傳遞
變數是定義在declare裡,具體結構如下
variable_name是變數名稱
type表示資料的變數型別
not null用中括號括起來說明他是乙個可選項,表示變數不能為空
[:=value]表示給變數賦予初值
其中,上述的&id表示接收輸入資料,執行時會彈出乙個輸入框給我們輸入資料
變數命名規則如下:
plsql中的作用域範圍是從變數宣告開始到這**塊結束
賦值變數是使用:=而不是=
也可以使用select into進行賦值
需要注意的是
小例子,根據使用者輸入id輸出庫存量
declare
v_id number:=&id;--接收使用者輸入的id
v_stock_count number;--商品庫存量
begin
select stockcount into v_stock_count from es_product
where id=v_id;
dbms_output.put_line(v_stock_count);
end;
其中也可以以列名或變數名作為字首來宣告變數
示例如下
另外我們還可以宣告某張表中一整行的資料
示例如下
**如下:
declare
v_id number := &id; --接收使用者輸入的id
v_name es_product.name%type; --商品名稱
v_price es_product.price%type; --商品**
v_saledate es_product.saledate%type; --上架時間
v_stock_count number; --商品庫存量
begin
select name, price, saledate, stockcount
into v_name, v_price, v_saledate, v_stock_count
from es_product
where id = v_id;
dbms_output.put_line(v_name||' '|| v_price||' '||v_saledate||' '||v_stock_count);
end;
另外一種寫法:
declare
v_id number := &id; --接收使用者輸入的id
v_es_pro es_product%rowtype; --表的完整行的變數
begin
select name, price, saledate, stockcount
into v_es_pro.name,
v_es_pro.price,
v_es_pro.saledate,
v_es_pro.stockcount
from es_product
where id = v_id;
dbms_output.put_line(v_es_pro.name || ' ' || v_es_pro.price || ' ' ||
v_es_pro.saledate || ' ' || v_es_pro.stockcount);
end;
PL SQL 的基本結構
基於塊結構 pl sql是塊結構語言。塊由declare,begin,exception,end關鍵字劃分,並且劃分為3個不同的區域 3個區域中,只有執行區域是必須的,其他兩個區域都是可選的 declare declaration statements begin execution stateme...
PL SQL塊的結構
1.宣告變數時,必須要指定型別 2.變數名需要先賦值,後使用 3.變數名沒有預設值 表現是空,無意義 pl sql塊的結構 declare v name varchar2 20 雨女無瓜 begin dbms output.put line v name 的第一條pl sql語句 end 與使用者互...
PL SQL 事前定義例外一覧
pl sql 用 以下 必要最低限 例外 定義 sys.standard 定義 內容 一見 例外 數 非常 少 程度 例外 定義例外 結構組 中 主 使 dup val on index no data found timeout on resource others 集中 思 以外 多 固有 例外...