Oracle資料庫 PL SQL儲存過程

2021-08-31 18:53:39 字數 1494 閱讀 4009

pl/sql儲存過程(procedures),可以動態進行sql語句的執行,比如說我們要定時去向資料庫插入資料,我們可以寫儲存過程,然後用定時器去觸發執行。

每個pl/sql子程式都有乙個名稱,也可能有乙個引數列表。 像匿名pl/sql塊一樣,命名塊也將具有以下三個部分

編號部分描述1

宣告部分

這是乙個可選的部分。 但是,子程式的宣告部分不以declare關鍵字開頭。 它包含型別,游標, 常量,變數,異常和巢狀子程式的宣告。這些項是本 子程式,當子程式完成執行時,它們將不復存在

2可執行部分

這是乙個強制性部分(必須有),幷包含執行指定操作的語句。

3異常處理

這是乙個可選的部分。它包含處理執行時錯誤的**。

建立儲存過程

語法

create [or replace] procedure procedure_name 

[(parameter_name [in | out | in out] type [, ...])]

begin

< procedure_body >

end procedure_name;

其中

示例 (從user表匯入前一天的資料到user_all表)

create or replace procedure user_all_pro is

cursor cur is

select t.user_id,t.gr_jbxx_id,t.xm,t.zjlxdm,t.zjhm,t.csrq,t.sjhm

from user t

where to_char ( to_date ( t.xt_xgsj , 'yyyy-mm-dd hh24:mi:ss' ) , 'yyyy-mm-dd') = to_char( sysdate-1 , 'yyyy-mm-dd')

order by t.xt_xgsj desc ;

begin

for nrow in cur loop

insert into user_all_pro

(user_id,gr_jbxx_id,xm,zjlxdm,zjhm,csrq,sjhm)

values

(nrow.user_id,nrow.gr_jbxx_id,nrow.xm,nrow.zjlxdm,nrow.zjhm,nrow.csrq);

end loop;

commit;

end user_all_pro ;

執行儲存過程

在pl/sql頂部選單中,新建–>命令視窗(command window)

執行exec user_all_pro ();

按回車,如果顯示以下資訊,則儲存過程執行成功

sql> exec user_all_pro();

pl/sql procedure successfully completed

ORACLE資料庫PLSQL筆記

oracle資料庫plsql筆記 pl sql 是oracle的程式語言,用於擴充套件sql的程式設計能力,為資料庫程式增加了許多可能的功能。它允許將過程控制語句與 sql語句結合使用oracle 特有的程式語言pl sql補充了標準的關聯式資料庫語言sql,提供了各種過程化特性,包括迴圈 if t...

PLSQL連線oracle資料庫

方法一 instantclient 12 2 1 安裝 instantclient 12 2 軟體 免安裝oracle客戶端 2 plsql配置 開啟plsql 點取消,彈出plsql主介面 選單欄的tools 屬性preferences 首選項 連線 3 連線資訊 1 連線資訊 可以是ip 152...

plsql 匯出oracle資料庫

plsql 匯出資料庫有兩個問題,乙個是只匯出結構,乙個是匯出表結構加資料這樣的,首先人家讓我導成sql語句 這不是簡單,首先開啟plsql 一 匯出結構 1 然後tools export user objects.然後出來一片空白 2 要選擇哪個user 3 上面會出現好多表,選擇一下你要匯出的表...