婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解

Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解

熱門標(biāo)簽:地圖標(biāo)注坐標(biāo)圖標(biāo) 手機(jī)地圖標(biāo)注門店 鶴壁電話機(jī)器人價格 杭州網(wǎng)絡(luò)外呼系統(tǒng)運營商 電銷套路機(jī)器人 網(wǎng)貸外呼系統(tǒng)合法嗎 地圖標(biāo)注效果的制作 汽車4s店百度地圖標(biāo)注店 安陽企業(yè)電銷機(jī)器人供應(yīng)商

1.1,Oracle存儲過程簡介: 

  存儲過程是事先經(jīng)過編譯并存儲在數(shù)據(jù)庫中的一段SQL語句的集合,調(diào)用存儲過程可以簡化應(yīng)用開發(fā)人員的很多工作,
減少數(shù)據(jù)在數(shù)據(jù)庫和應(yīng)用服務(wù)器之間的傳輸,對于提高數(shù)據(jù)處理的效率是有好處的。

優(yōu)點:

  • 允許模塊化程序設(shè)計,就是說只需要創(chuàng)建一次過程,以后在程序中就可以調(diào)用該過程任意次。
  • 允許更快執(zhí)行,如果某操作需要執(zhí)行大量SQL語句或重復(fù)執(zhí)行,存儲過程比SQL語句執(zhí)行的要快。
  • 減少網(wǎng)絡(luò)流量,例如一個需要數(shù)百行的SQL代碼的操作有一條執(zhí)行語句完成,不需要在網(wǎng)絡(luò)中發(fā)送數(shù)百行代碼。
  • 更好的安全機(jī)制,對于沒有權(quán)限執(zhí)行存儲過程的用戶,也可授權(quán)他們執(zhí)行存儲過程。

1.2,創(chuàng)建存儲過程的語法:

create [or replace] procedure 存儲過程名(param1 in type,param2 out type)
as
 變量1 類型(值范圍);
 變量2 類型(值范圍);
begin
 select count(*) into 變量1 from 表A where列名=param1;
 if (判斷條件) then
 select 列名 into 變量2 from 表A where列名=param1;
 dbms_output.Put_line('打印信息');
 elsif (判斷條件) then
 dbms_output.Put_line('打印信息');
 else
 raise 異常名(NO_DATA_FOUND);
 end if;
exception
 when others then
 rollback;
end;

參數(shù)的幾種類型:

in 是參數(shù)的默認(rèn)模式,這種模式就是在程序運行的時候已經(jīng)具有值,在程序體中值不會改變。
out 模式定義的參數(shù)只能在過程體內(nèi)部賦值,表示該參數(shù)可以將某個值傳遞回調(diào)用他的過程
in out 表示高參數(shù)可以向該過程中傳遞值,也可以將某個值傳出去

1.3,示范一些存儲過程

[下面一些存儲過程的操作根據(jù)自己數(shù)據(jù)庫中的內(nèi)容進(jìn)行內(nèi)容顯示,只要顯示內(nèi)容就正確,報錯除外- -,還有存儲過程盡量不要粘貼代碼,很容易報錯]:

 1.3.1,不帶參數(shù)的存儲過程:

CREATE OR REPLACE PROCEDURE MYDEMO02
AS
 name VARCHAR(10);
 age NUMBER(10);
BEGIN
 name := 'xiaoming';--:=則是對屬性進(jìn)行賦值
 age := 18;
 dbms_output.put_line ( 'name=' || name || ', age=' || age );--這條是輸出語句
END;
--存儲過程調(diào)用(下面只是調(diào)用存儲過程語法)
BEGIN
 MYDEMO02();
END;

 1.3.2,帶參數(shù)的存儲過程:

CREATE OR REPLACE procedure MYDEMO03(name in varchar,age in int)
AS
BEGIN
 dbms_output.put_line('name='||name||', age='||age);
END;

--存儲過程調(diào)用
BEGIN
 MYDEMO03('姜煜',18);
END;

 1.3.3,出現(xiàn)異常的輸出存儲過程:

CREATE OR REPLACE PROCEDURE MYDEMO04
AS
 age INT;
BEGIN
 age:=10/0;
 dbms_output.put_line(age);
EXCEPTION when others then --處理異常
 dbms_output.put_line('error');
END;
--調(diào)用存儲過程
BEGIN
 MYDEMO04;
END;
  • Oracle常見的三大異常分類[沒有詳細(xì)陳述,有興趣的同學(xué)可以自行查下]
  • 預(yù)定義異常:由PL/SQL定義的異常。由于它們已在standard包中預(yù)定義了,因此,這些預(yù)定義異常可以直接在程序中使用,而不必再定義部分聲明。
  • 非預(yù)定義異常:用于處理預(yù)定義異常所不能處理的Oracle錯誤。
  • 自定義異常:用戶自定義的異常,需要在定義部分聲明后才能在可執(zhí)行部分使用。用戶自定義異常對應(yīng)的錯誤不一定是Oracle錯誤,例如它可能是一個數(shù)據(jù)錯誤。

1.3.4,獲取當(dāng)前時間和總?cè)藬?shù):

CREATE OR REPLACE PROCEDURE TEST_COUNT01
IS
 v_total int;
 v_date varchar(20);
BEGIN
 select count(*) into v_total from EMP_TEST WHERE ENAME ='燕小六'; --into是賦值的關(guān)鍵字
 select to_char(sysdate,'yyyy-mm-dd')into v_date FROM EMP_TEST WHERE ENAME ='郭芙蓉';
 DBMS_OUTPUT.put_line('總?cè)藬?shù):'||v_total);
 DBMS_OUTPUT.put_line('當(dāng)前日期'||v_date);
END;

--調(diào)用存儲過程
BEGIN
 TEST_COUNT01();
END;

 1.3.5,帶輸入?yún)?shù)和輸出參數(shù)的存儲過程:

CREATE OR REPLACE PROCEDURE TEST_COUNT04(v_id in int,v_name out varchar2)
IS
BEGIN
 SELECT ENAME into v_name FROM EMP_TEST WHERE EMPNO = v_id;
 dbms_output.put_line(v_name);
EXCEPTION
 when no_data_found then dbms_output.put_line('no_data_found');
END;

--調(diào)用存儲過程
DECLARE
 v_name varchar(200);
BEGIN
 TEST_COUNT04('1002',v_name);
END;

 1.3.6,查詢存儲過程以及其他:

CREATE OR REPLACE PROCEDURE job_day04(de in varchar,name out varchar,App_Code out varchar,error_Msg out varchar)
AS
BEGIN
 SELECT ENAME into name FROM EMP_TEST WHERE ENAME=de;
EXCEPTION WHEN others THEN
 error_Msg:='未找到數(shù)據(jù)';
END;
--調(diào)用存儲過程
DECLARE
  de varchar(10);
  ab varchar(10);
   appcode varchar(20);
   ermg varchar(20);
BEGIN
   de:= '張三豐';
   JOB_DAY04(de,ab,appcode,ermg);
   dbms_output.put_line(ermg);
END;

 1.3.7,向數(shù)據(jù)庫中添加數(shù)據(jù)的存儲過程

CREATE OR REPLACE PROCEDURE job_day05(do1 in varchar,dn1 in varchar,eo1 in number,en1 in varchar,App_Code out varchar,error_Msg out varchar)
AS
BEGIN
 INSERT INTO STUDENT(NAME,CLASS)VALUES(do1,dn1);
 INSERT INTO COMPANY(EMPID,NAME,DEPARNAME)VALUES(eo1,en1,do1);
COMMIT;
EXCEPTION WHEN OTHERS THEN
 App_Code:=-1;
 error_Msg:='插入失敗';
END;
--調(diào)用存儲過程
DECLARE
  do1 varchar(10);
  dn1 varchar(10);
   eo1 number(20);
   App_Code varchar(20);
 error_Msg varchar(20);
BEGIN
    do1:= '張三豐';
 dn1:='新橋';
 eo1:=1001;
    JOB_DAY04(do1,dn1,App_Code,error_Msg);
    dbms_output.put_line(ermg);
END;

這個比較麻煩,做的時候假如報錯就別找了- -我找了好久也沒找到,,,

2.0,游標(biāo)的使用,看到的一段解釋很好的概念,如下:

  •  游標(biāo)是SQL的一個內(nèi)存工作區(qū),由系統(tǒng)或用戶以變量的形式定義。游標(biāo)的作用就是用于臨時存儲從數(shù)據(jù)庫中提取的數(shù)據(jù)塊。在某些情況下,需要把數(shù)據(jù)從存放
  •    在磁盤的表中調(diào)到計算機(jī)內(nèi)存中進(jìn)行處理,最后將處理結(jié)果顯示出來或最終寫回數(shù)據(jù)庫。這樣數(shù)據(jù)處理的速度才會提高,否則頻繁的磁盤數(shù)據(jù)交換會降低效率。
  •    游標(biāo)有兩種類型:顯式游標(biāo)和隱式游標(biāo)。在前述程序中用到的SELECT...INTO...查詢語句,一次只能從數(shù)據(jù)庫中提取一行數(shù)據(jù),對于這種形式的查詢和DML操作,
  •    系統(tǒng)都會使用一個隱式游標(biāo)。但是如果要提取多行數(shù)據(jù),就要由程序員定義一個顯式游標(biāo),并通過與游標(biāo)有關(guān)的語句進(jìn)行處理。顯式游標(biāo)對應(yīng)一個返回結(jié)果為多
  •    行多列的SELECT語句。
  •    游標(biāo)一旦打開,數(shù)據(jù)就從數(shù)據(jù)庫中傳送到游標(biāo)變量中,然后應(yīng)用程序再從游標(biāo)變量中分解出需要的數(shù)據(jù),并進(jìn)行處理。
  •    在我們進(jìn)行insert、update、delete和select   value into  variable 的操作中,使用的是隱式游標(biāo)
  •    隱式游標(biāo)的屬性 返回值類型意義            
  •    SQL%ROWCOUNT    整型  代表DML語句成功執(zhí)行的數(shù)據(jù)行數(shù)  
  •    SQL%FOUND   布爾型 值為TRUE代表插入、刪除、更新或單行查詢操作成功  
  •    SQL%NOTFOUND    布爾型 與SQL%FOUND屬性返回值相反  
  •    SQL%ISOPEN  布爾型 DML執(zhí)行過程中為真,結(jié)束后為假 

 2.1,修改雇員薪資:

 CREATE OR REPLACE PROCEDURE job_day06(epo in number)
  AS
 BEGIN
  UPDATE EMPS SET SAL=(SAL+100) WHERE empno = epo;
  IF SQL%FOUND --SQL%FOUND是隱式游標(biāo) 作用:判斷SQL語句是否成功執(zhí)行,當(dāng)有作用行時則成功執(zhí)行為true,否則為false。 6 THEN
  DBMS_OUTPUT.PUT_LINE('成功修改雇員工資!');
  commit;
  else
  DBMS_OUTPUT.PUT_LINE('修改雇員工資失敗!');
  END IF;
 END;
 --調(diào)用存儲過程
 declare
 e_number number;
 begin
 e_number:=1001;
 job_day06(e_number);
 end;

 2.2,查詢編號為1001信息

CREATE OR REPLACE PROCEDURE job_day07
IS
BEGIN
DECLARE
 cursor emp_sor is select name,sal FROM EMPS WHERE EMPNO = '1001'; --聲明游標(biāo)
 cname EMPS.NAME%type; --%type 作用: 聲明的變量ename與EMPS表的NAME列類型一樣
 csal EMPS.SAL%type;
BEGIN
 open emp_sor; --打開游標(biāo)
 loop
-- 取游標(biāo)值給變量
 FETCH emp_sor into cname,csal;
 dbms_output.put_line('name:'||cname);
 exit when emp_sor%notfound;
 end loop;
 close emp_sor; --關(guān)閉游標(biāo)
end;
end;
--調(diào)用存儲過程
BEGIN
 job_day07();
END;

總結(jié):

  存儲過程通俗的理解就是就是一個執(zhí)行過程,調(diào)用的時候給他所需要的需求就會對數(shù)據(jù)庫進(jìn)行操作,相當(dāng)于我們自己手寫Sql,只不過有了存儲過程
  只要調(diào)用一下傳給他參數(shù)他就會幫我們寫,比較方便,靈活的運用存儲過程會讓我們開發(fā)很方便

到此這篇關(guān)于Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫創(chuàng)建存儲過程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Oracle 區(qū)塊鏈表創(chuàng)建過程詳解
  • Oracle多表查詢中間表的創(chuàng)建實例教程
  • Oracle數(shù)據(jù)庫scott用戶創(chuàng)建view視圖權(quán)限的操作方法
  • Navicat Premium中Oracle創(chuàng)建主鍵自增的方法
  • Navicat for oracle創(chuàng)建數(shù)據(jù)庫的方法
  • 通過PLSQL Developer創(chuàng)建Database link,DBMS_Job,Procedure,實現(xiàn)Oracle跨庫傳輸數(shù)據(jù)的方法(推薦)
  • oracle創(chuàng)建dblink方法示例
  • Oracle 給rac創(chuàng)建單實例dg并做主從切換功能
  • Oracle創(chuàng)建設(shè)置查詢權(quán)限用戶的方法
  • Oracle創(chuàng)建新undo表空間最佳實踐(包含段檢查)
  • 使用sqlplus命令行工具為oracle創(chuàng)建用戶和表空間
  • Oracle創(chuàng)建只讀賬號的詳細(xì)步驟

標(biāo)簽:酒泉 銀川 河源 梧州 焦作 泰安 柳州 南陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解》,本文關(guān)鍵詞  Oracle,數(shù)據(jù)庫,創(chuàng)建,存儲,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle數(shù)據(jù)庫創(chuàng)建存儲過程的示例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    韩国v欧美v亚洲v日本v| 色婷婷综合中文久久一本| 91丝袜国产在线播放| 日韩精品一区二区三区视频在线观看| 亚洲乱码国产乱码精品精的特点 | 韩国视频一区二区| 免费观看在线色综合| 成人免费观看视频| 欧美一二三四区在线| 亚洲日本韩国一区| 韩国一区二区视频| 欧美高清你懂得| 亚洲一区二区三区三| 粉嫩13p一区二区三区| 欧美一区二区视频观看视频| 亚洲精品成人悠悠色影视| 国产精品一区一区三区| 欧美一区二区三区视频免费播放| 国产精品人成在线观看免费| 蜜臀国产一区二区三区在线播放 | 国产清纯白嫩初高生在线观看91 | 久久精品av麻豆的观看方式| 91亚洲精华国产精华精华液| 精品成人佐山爱一区二区| 日韩在线一区二区三区| 欧美日本在线播放| 亚洲香肠在线观看| 色婷婷精品大在线视频| 亚洲欧洲国产专区| 成人深夜视频在线观看| 国产精品乱人伦一区二区| 国产精品1024久久| 久久精品一区二区三区不卡牛牛| 精品一区二区成人精品| 日韩欧美美女一区二区三区| 日本不卡一区二区三区高清视频| 欧美三级在线视频| 亚洲一区二区三区美女| 欧美日韩精品一区二区在线播放| 一个色综合网站| 欧美三级电影网站| 污片在线观看一区二区| 91精品国产麻豆| 黄色成人免费在线| 国产免费成人在线视频| 大桥未久av一区二区三区中文| 日本一区二区三区久久久久久久久不| 国产精一品亚洲二区在线视频| 久久亚洲综合色| 成人国产在线观看| 亚洲美女偷拍久久| 这里只有精品视频在线观看| 美女网站在线免费欧美精品| 久久综合国产精品| 成人视屏免费看| 亚洲国产一二三| 日韩一区二区在线观看视频 | 亚洲成人精品一区| 欧美mv日韩mv亚洲| 亚洲午夜一二三区视频| 精品国产乱码久久久久久闺蜜 | 极品少妇一区二区| 26uuu亚洲婷婷狠狠天堂| 成人免费视频免费观看| 亚洲欧美aⅴ...| 欧美一区二区三区精品| 国产盗摄一区二区三区| 国产精品久久久久久久久图文区| 在线日韩一区二区| 国产乱人伦偷精品视频免下载| 亚洲天堂久久久久久久| 日韩欧美亚洲国产另类| a级高清视频欧美日韩| 免费成人在线观看视频| 国产精品进线69影院| 欧美猛男男办公室激情| 国产成人精品亚洲午夜麻豆| 亚洲福利视频三区| 精品国产一区二区三区久久久蜜月 | 日本一区二区三区国色天香| 欧洲中文字幕精品| 国产高清成人在线| 午夜伦欧美伦电影理论片| 欧美国产精品v| 日韩欧美一级在线播放| 91成人免费在线| 国产一区二区主播在线| 亚洲bt欧美bt精品777| 国产精品乱码妇女bbbb| 欧美一级高清片在线观看| a美女胸又www黄视频久久| 狠狠久久亚洲欧美| 视频一区中文字幕| 亚洲综合无码一区二区| 国产精品视频九色porn| 欧美成人video| 337p亚洲精品色噜噜噜| 91色婷婷久久久久合中文| 狠狠色2019综合网| 男人的天堂亚洲一区| 香蕉av福利精品导航| 亚洲精品成人a在线观看| 国产精品免费视频网站| 中文字幕 久热精品 视频在线| 欧美videofree性高清杂交| 欧美日韩成人一区| 日本黄色一区二区| 99精品偷自拍| 99久免费精品视频在线观看| 国产一区二区看久久| 久国产精品韩国三级视频| 日日噜噜夜夜狠狠视频欧美人 | 久久久久88色偷偷免费| 日韩免费视频线观看| 日韩一区二区不卡| 欧美一区二区日韩| 欧美一三区三区四区免费在线看| 在线观看不卡视频| 欧美日韩免费不卡视频一区二区三区| 色综合天天在线| 色狠狠综合天天综合综合| 91久久国产综合久久| 91成人国产精品| 欧美三级中文字| 欧美一区二区三区影视| 精品日韩av一区二区| 久久久不卡网国产精品一区| 久久久www免费人成精品| 欧美韩国日本一区| 一区二区三区四区国产精品| 一区二区三区在线观看欧美| 日日夜夜免费精品视频| 麻豆精品视频在线观看免费 | 蜜乳av一区二区| 国产乱码精品一品二品| 高清国产午夜精品久久久久久| 91在线视频观看| 欧美艳星brazzers| 精品国产乱码久久久久久夜甘婷婷| 久久久久亚洲蜜桃| 亚洲同性同志一二三专区| 偷拍一区二区三区| 精品写真视频在线观看| 色94色欧美sute亚洲线路二| 91精品国产色综合久久ai换脸| 欧美电视剧免费观看| 亚洲色图欧洲色图婷婷| 免费国产亚洲视频| 91网站最新地址| 日韩一区二区三免费高清| 国产精品美女视频| 亚洲成人免费在线| 国产成人aaa| 欧美日韩亚洲综合一区二区三区| 欧美一卡2卡3卡4卡| 欧美激情综合在线| 亚洲激情网站免费观看| 三级一区在线视频先锋| 成人久久久精品乱码一区二区三区| 欧美日韩高清一区二区| 精品国产伦一区二区三区观看方式 | 欧美日韩精品欧美日韩精品 | 久色婷婷小香蕉久久| av电影在线观看不卡| 日韩欧美在线一区二区三区| 久久免费国产精品| 日韩av午夜在线观看| 懂色av中文字幕一区二区三区| 午夜精品在线视频一区| 波多野结衣一区二区三区| 日韩美女视频在线| 视频在线观看一区二区三区| 秋霞午夜av一区二区三区| 国产精品99久久久久久久女警| 欧美在线三级电影| 日韩一级二级三级| 亚洲丝袜另类动漫二区| eeuss鲁片一区二区三区在线看| 不卡电影一区二区三区| 欧美zozo另类异族| 亚洲欧美综合另类在线卡通| 亚洲大尺度视频在线观看| 国内精品免费**视频| 91精品国产综合久久国产大片| 日韩美女视频在线| 国产亚洲一本大道中文在线| 蜜桃一区二区三区在线| 91麻豆文化传媒在线观看| 日韩免费观看2025年上映的电影| 亚洲欧洲在线观看av| 国产真实乱子伦精品视频| 色偷偷久久人人79超碰人人澡| 日韩视频123| 国内精品免费**视频| 91精品欧美福利在线观看| 最新国产成人在线观看| 国产剧情一区在线| 国产欧美精品日韩区二区麻豆天美| 麻豆视频一区二区| 欧美男同性恋视频网站|