儲存過程是存放在資料字典中的程式塊,它可以在不同使用者和應用程式間共享,並可實現程式的優化和重用。
一、儲存過程的建立和執行
1、利用sql命令建立儲存過程
語法格式如下:
create [or replace] procedure [schema.]procedurename[(param1 mode1 datatype1,...n)]
is | as
begin
statements; /*過程體,要執行的操作*/
end;
其中,mode1表示引數的型別,跟方法的引數一樣,有in、out和in out三種型別;datatype1表示引數的資料型別。
示例**:
create or replace procedure getmodulename(mid in number,mname out varchar)
asbegin
select name into mname from t_module where id=mid;
end;
2、呼叫儲存過程
語法格式如下:
exec[ute] procedurename[(param1,...n)] /*這是在命令視窗可以這樣執行*/
注:
直接輸入乙個儲存過程的名字也可以執行乙個已定義的儲存過程
示例**:
declare
mid number := 15;
mname varchar(20);
begin
getmodulename(mid,mname);
dbms_output.put_line(mname || ' ********modulename');
end;
二、儲存過程的編輯修改
修改儲存過程和修改檢視一樣,雖然也有alter procedure 語句,但它是用來重新編譯儲存過程的。如果要修改已經定義的儲存過程,仍然使用create or replace procedure語句。
例如,修改上面的getmodulename儲存過程如下:
create or replace procedure getmodulename(mid in number,mname out varchar)
asbegin
if mid > 0 then
select name into mname from t_module where id=mid;
else
mname := null;
end if;
end;
三、刪除儲存過程
當某個儲存過程不再需要時,可以將它刪除,以釋放其占用的記憶體資源。
語法格式如下:
drop procedure [schema.]procedurename;
例如刪除getmodulename儲存過程如下:
drop procedure getmodulename;
Oracle 14 非空約束
一 非空約束兩種實現方式 方式1.在建立表的時候就約束非空,如下 create table student id number 5 primary key,name varchar2 20 not null 方式2.對於已存在的表新增非空約束,如下 alter table student modif...
Oracle(14)資料完整性約束
約束 非空not null,唯一unique,主鍵primary key,外來鍵foreign key,檢查check 預設default 主鍵 外來鍵 非空 create table class id number primary key,name varchar2 32 create table...
ORACLE 14資料庫系列問題
卡在安裝程式第一步 解決 共享裡新增c盤共享,配置讀寫許可權 程序oracle listener無法關閉開啟 解決 listener.ora中將localhost換成本計算機名 ora 12514 無監聽 我的原因 可能是同時安裝12c和10c原因 解決 本地資料庫名字前面帶localhost 應該...