程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> ORACLE中的PL/SQL過程和函數

ORACLE中的PL/SQL過程和函數

編輯:關於SqlServer
--prcedure過程----〉存儲過程 沒有返回值的函數
--function函數----〉有返回值
--PL/SQL BLOCK塊
--聲明部分(可選的)
declare
i number;
--可執行部分(必需的)
begin
select sal into i from emp where empno=&empno;
--異常處理部分(可選的)
exception
when no_data_found then
dbms_output.put_line(''沒有這個員工!'');
end;
/
/*把以上內容永久保存為一個數據庫對象,
起一個名字,通過該名字以後就可以調用*/
--什麼是存儲過程(存儲過程的聲明+pl/sql塊)
--最簡單的存儲過程
create procedure myproc
as
begin
null;
end;
/
--or replace 的含義如果對象已經存在就替換
create or replace procedure myproc
as
begin
dbms_output.put_line(''is my proc!'');
end;
/
--如何把pl/sql塊改造為存儲過程
--利用as替換declare
--過程可以有參數,用參數替代 塊中讓用戶在運行時輸入的值
create or replace procedure myproc1(eno number)
as
--declare
i number;
--可執行部分(必需的)
begin
select sal into i from emp where empno=eno;
dbms_output.put_line(i);
--異常處理部分(可選的)
exception
when no_data_found then
dbms_output.put_line(''沒有這個員工!'');
end;
/
--exec myproc1(7369);
--如何能在Java應用程序中能接到 數據庫 存儲過程的返回值
--過程的參數分三種  in   out   in out (按地址傳遞,可進可出)
--out 特殊的按地址傳遞,空進 帶值出
create or replace procedure myproc2(a number,b out number,c in out number)
as
begin
b:=a*2;
c:=c*2;
end;
/
--b 傳入一個空變量  過程執行完畢後 改變量將會有值
declare
bb number;
cc number;
begin
cc:=100;
myproc2(10,bb,cc);
dbms_output.put_line(bb);
dbms_output.put_line(cc);
end;
/
create table myuser
(id number,
username varchar2(20),
passWord varchar2(20),
role number);
insert into myuser values(1,''tom'',''123'',1);
insert into myuser values(2,''guo'',''123'',5);
insert into myuser values(3,''zzq'',''123'',1);
--過程和函數的參數和返回值只用寫類型,不用寫長短
create or replace procedure
checkuser(uname varchar2,pWord varchar2,isok out varchar2)
as
i number;
begin
select count(*) into i from myuser where username=uname and password=pWord;
if i=1 then
isok:=''y'';
else
isok:=''n'';
end if;
end;
/
--函數 比過程多一個返回值 利用異常處理的函數 訪問數據庫一次
create or replace function myfunc(eno number) return varchar2
as
i varchar2(20);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved