儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的
sql
語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件
1.登入
system
使用者給普通使用者許可權:(此時的身份是:
system
)grant create any table to annan;--授權表的許可權給
annan
角色grant create any procedure to annan;
grant execute any procedure to annan;--授權儲存過程的許可權給
annan
角色2. 建立一
張表(此時的身份是:annan)
--建立一張表(此時的身份是:annan)create table usertble(
usid number(10) primary key not null,
usname nvarchar2(20) not null,
uspwd nvarchar2(20) not null
)--新增幾條資料
insert into usertble values(2,'3333','1')
--查詢
select * from usertble
1.
--建立儲存過程:通過儲存過程來查詢usertble的總記錄數2.去命令下執行create or replace procedure proce_usertable
asnums number(1);
begin
select count(*) into nums from usertble;
dbms_output.put_line('總人數:'||nums);
end;
3.呼叫儲存過程
--呼叫儲存過程 語法:begin 『儲存過程名稱』(變數1,變數2...) end;查詢結果:begin
proce_usertable;
end;
然後乙個儲存過程就這樣好了。。。。。。。
--建立儲存過程:通過儲存過程來新增usertble的資訊-------------帶參的儲存過程---------create or replace procedure insert_usertable
asbegin
insert into usertble
values
(3,'999999','666');
end;
--呼叫儲存過程 :insert_usertable
begin
insert_usertable;
end;
---儲存過程的引數
---in 定義乙個輸入引數變數,用於傳遞引數給儲存過程
--out 定義乙個輸出引數變數,用於從儲存過程獲取資料
---in out 定義乙個輸入、輸出引數變數,兼有以上兩者的功能
1.in
--1.建立有引數的儲存過程 in :將值傳到儲存過程中2.outcreate or replace procedure test_in
(usid in number,usname in nvarchar2,uspwd nvarchar2 default '0')
asbegin
insert into usertble
values
(usid,usname,uspwd);
end;
--呼叫儲存過程:test_in
begin
test_in(4,'大灰狼','18');
end;
--2.建立有引數的儲存過程 out :將儲存過程中的值傳出來3.in outcreate or replace procedure test_out
(usnames out nvarchar2,uspwds out nvarchar2)
asbegin
select usname,uspwd into usnames,uspwds from usertble where usid=4;
dbms_output.put_line('使用者名稱:'||usnames);
dbms_output.put_line('密碼:'||uspwds);
end;
--呼叫儲存過程:test_out
declare
usnames nvarchar2(20);--宣告引數usnames
uspwds nvarchar2(20);--宣告引數uspwds
begin
test_out(usnames,uspwds);
dbms_output.put_line('☆使用者名稱☆:'||usnames);
dbms_output.put_line('☆密碼☆:'||uspwds);
end;
--3.建立有引數的儲存過程 in out :將值傳到儲存過程中,再將儲存過程中的值傳出來create or replace procedure test_in_out
(phone in out nvarchar2)
asbegin
phone:='10086-'||phone;
end;
--呼叫儲存過程:test_in_out
declare
phone nvarchar2(20);--宣告引數phone
begin
phone:='11111';
test_in_out(phone);
dbms_output.put_line('☆這個**是☆:'||phone);
end;
Oracle學習之儲存過程
儲存過程可以說是乙個記錄集吧,它是由一些t sql語句組成的 塊,這些t sql語句 像乙個方法一樣實現一些功能 對單錶或多表的增刪改查 然後再給這個 塊取乙個名字,在用到這個功能的時候呼叫他就行了 建立儲存過程 create proc edure procedure name number var...
LINQ 學習筆記之儲存過程!
首先在資料庫中隨便建立兩個儲存過程,乙個待引數,乙個不待引數,create proc sp selectstudent asbegin select from student end第二個 create proc dbo sp addclasses classename nvarchar 20 as...
oracle學習筆記之儲存過程
user scott sql create table mytest name varchar2 30 password varchar2 30 table created sql create or replace procedure pro sp1 is 建立乙個簡單的儲存過程 2 begin ...