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

主頁 > 知識庫 > Oracle存儲過程案例詳解

Oracle存儲過程案例詳解

熱門標(biāo)簽:西藏地圖標(biāo)注改進(jìn)點(diǎn) 地圖標(biāo)注專員入駐 神行者百貨商場地圖標(biāo)注 外呼系統(tǒng)線路經(jīng)常出問題嗎 地圖標(biāo)注百度競價(jià) 地圖標(biāo)注什么軟件好用 安陽手機(jī)自動(dòng)外呼系統(tǒng)原理是什么 如何辦理400客服電話 外呼系統(tǒng)怎樣才能不封號

創(chuàng)建簡單存儲過程(Hello World)

為了方便讀者簡單易懂,我將下面使用到的表復(fù)制給大家。
具體表中的數(shù)據(jù),請大家自己填寫

-- Create table
create table EMP
(
  empno    NUMBER(4) not null,
  ename    VARCHAR2(10),
  job      VARCHAR2(9),
  mgr      NUMBER(4),
  hiredate DATE,
  sal      NUMBER(7,2),
  comm     NUMBER(7,2),
  deptno   NUMBER(2)
)

create or replace procedure firstP(name in varchar2) is
/*這里name為的參數(shù),in為輸入,varchar2為類型*/
begin
 /* dbms_output.put_line(); 相當(dāng)輸出到控制臺上,這樣我們一個(gè)簡單的存儲過程就完成啦
 記住一句話的結(jié)束使用分號結(jié)束,存儲過程寫完一定要執(zhí)行
 將它保存到數(shù)據(jù)庫中 (F8)快捷鍵,或者點(diǎn)擊左上角執(zhí)行*/
  dbms_output.put_line('我的名字叫'||name);/*dbms_output.put_line相當(dāng)于JAVA中的System.out.println("我的名字叫"+name);*/
end firstP;

下面我們要對剛剛寫過的存儲過程進(jìn)行測試,我們開啟Test Window這個(gè)窗口

-- Created on 2018/12/30 星期日 by ADMINISTRATOR 
declare 
  -- Local variables here
  /*測試名稱 名稱類型 使用 := 給參數(shù)賦值,在多說一句,分號結(jié)束本句*/
  name2 varchar2(64):='數(shù)據(jù)庫';
begin
  -- Test statements here
  firstp(name2);
end;

我們打開DBMS Output就可以看到執(zhí)行的存儲過程啦。

存儲過程IF判斷

create or replace procedure isifp(age in number) is
/*存儲過程if判斷以then開始,以end if; 結(jié)束*/
begin
  if (age > 30) then
    dbms_output.put_line('我已經(jīng)超過30歲了');
  else
    if (age  10) then
      dbms_output.put_line('我還是個(gè)兒童');
    else
      dbms_output.put_line('我正在奮斗時(shí)期');
    end if;
  end if;

end;

存儲過程輸出

create or replace procedure inandout(name in varchar2, age in number,outp out varchar2) is
/*in 代表輸入,out 代表輸出*/
begin
  outp:='my name is '|| name ||',my age is '||age;/*相當(dāng)于JAVA中的return outp,但是請注意,存儲過程中可以return多個(gè)值*/
end inandout;

測試輸出代碼

-- Created on 2018/12/30 星期日 by ADMINISTRATOR 
declare 
  -- Local variables here
  name varchar2(64):='數(shù)據(jù)庫';
  age number:=06;
  out_p varchar2(64);
begin
  -- Test statements here
  inandout(name,age,outp=>:out_p);
  /*這里的outp是存儲過程中的輸出參數(shù),out_p是在測試中使用的別名*/
end;

返回游標(biāo)

create or replace procedure sysrefcursor(id in number, columnss out sys_refcursor) as
/*columnss out sys_refcursor  為輸出游標(biāo)*/
begin
  open columnss for
  select * from emp where empno=id;
end;

測試游標(biāo)

第一種測試方法

-- Created on 2018/12/30 星期日 by ADMINISTRATOR 
declare 
  -- Local variables here
 cursor ee is select * from emp where empno=7934;
begin
  -- Test statements here
  for e in ee loop
  dbms_output.put_line('deptno:'||e.deptno);
  end loop;
end;

輸出結(jié)果如下:

第二種測試方法

-- Created on 2018/12/30 星期日 by ADMINISTRATOR 
declare 
  -- Local variables here
 cursor ee is select * from emp where empno=7934;
 cur ee % rowtype;
begin
  -- Test statements here
  open ee;
  loop
  fetch ee into cur;
  exit when ee%notfound;
  dbms_output.put_line('name:'||cur.ename);
  end loop;
  close ee;
end;

上面測試結(jié)果僅僅返回一條數(shù)據(jù)。下面我來演示返回多條數(shù)據(jù)的情況。
首先請看我表中的數(shù)據(jù)

有兩個(gè)job中內(nèi)容為CLERK的數(shù)據(jù)。

-- Created on 2018/12/30 星期日 by ADMINISTRATOR 
declare 
  -- Local variables here
 cursor ee is select * from emp where job='CLERK';
begin
  -- Test statements here
  for e in ee loop
  dbms_output.put_line('deptno:'||e.deptno);
  end loop;
end;

游標(biāo)返回多條數(shù)據(jù)。

由于對于初學(xué)者來說,游標(biāo)可能不是很容易理解,下面我用JAVA語言來描述一下。
我們在java程序中寫條件查詢的時(shí)候,返回出來的數(shù)據(jù)是List泛型>。這個(gè)操作相當(dāng)于游標(biāo),說白了就是個(gè)查詢而已(大家不要誤認(rèn)為就這么一句簡單的SQL為什么要用游標(biāo),因?yàn)橹皇欠奖阕x者學(xué)習(xí)游標(biāo)罷了,具體業(yè)務(wù)具體分析,請不要抬杠哦)
當(dāng)我們要使用list中的數(shù)據(jù)時(shí),我們使用循環(huán)調(diào)用某一條數(shù)據(jù)時(shí),是不是就要用實(shí)體類對象點(diǎn)get字段。可以理解為for e in ee loop dbms_output.put_line('deptno:'||e.deptno); end loop;
這里面的e.deptno。

獲取table中的column

create or replace procedure intop(id in number, print2 out varchar2) as
  e_name varchar2(64);
begin
  select ename into e_name from emp where empno = id;
  if e_name ='ALLEN' then 
   dbms_output.put_line(e_name);
   print2:='my name is '||e_name;
   else if e_name ='SMITH' then 
      print2:='打印sql'||e_name;
      else
        print2:='打印其他';
      end if;
   end if;
end intop;

稍微復(fù)雜一點(diǎn)存儲過程

由于朋友這里有個(gè)需求需要用存儲過程,進(jìn)而更新一下博客。
首先我們先創(chuàng)建一張表

-- Create table
create table CLASSES
(
  id       NUMBER not null,
  name     VARCHAR2(14),
  classesc VARCHAR2(10),
  seq      NUMBER(5)
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table CLASSES
  add constraint PK_CLASSES primary key (ID)
  using index 
  tablespace USERS
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

下面我們創(chuàng)建一個(gè)序列

-- Create sequence 
create sequence SEQ_CLASSES
minvalue 1
maxvalue 9999999999999999999999999999
start with 2
increment by 1
cache 20;

下面創(chuàng)建存儲過程,寫的亂一些,希望不要介意

create or replace procedure proclasses(Names     in varchar2,
                                       classescs in varchar) as
/*在我們創(chuàng)建存儲過程的時(shí)候as其實(shí)是is*/
  id  number;/*設(shè)置變量名稱*/
  c   number;
  seq number;
begin
  select SEQ_CLASSES.nextval into id from dual;/*獲取下一個(gè)序列,使用into賦值給id這個(gè)變量名稱*/
  dbms_output.put_line('classescs=' || classescs);/*打印而已*/
  select count(*) into c from Classes where classesc = classescs;/*條件判斷,classesc=進(jìn)來的變量*/
  if (c > 0) then/*當(dāng)數(shù)量大于0時(shí)*/
    select max(seq) + 1 into seq from Classes where classesc = classescs;
    dbms_output.put_line('第一個(gè)seq' || seq);
  else
    if (c = 0) then
      seq := 0;/*如果查詢出來的數(shù)量為0的時(shí)候,我們賦值seq變量為0*/
      dbms_output.put_line('c=0的時(shí)候seq' || seq);
    end if;
  end if;
  insert into classes
    (id, name, classesc, seq)
  values
    (id, names, classescs, seq);
 /*insert插入這個(gè)不用多說了,大家都明白;注意的是我們insert之后一定要提交。
  不然數(shù)據(jù)沒有持久化到數(shù)據(jù)庫,這個(gè)insert沒有任何意義了*/
end proclasses;

下面我們來調(diào)用這個(gè)存儲過程

-- Created on 2019/1/7 星期一 by ADMINISTRATOR 
declare 
  -- Local variables here
  names varchar2(32):='曉明';
  classescs varchar2(32):='一班';
begin
  -- Test statements here
  proclasses(names,classescs);
end;

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

您可能感興趣的文章:
  • Oracle區(qū)別ADG與DG案例詳解
  • oracle創(chuàng)建用戶過程詳解
  • Oracle rac案例講解
  • Oracle之TO_DATE用法詳解
  • 如何使用Oracle PL/SQL 實(shí)現(xiàn)發(fā)送電子郵件功能(UTL_MAIL)
  • springboot+mybatis-plus+oracle實(shí)現(xiàn)邏輯刪除
  • oracle+mybatis-plus+springboot實(shí)現(xiàn)分頁查詢的實(shí)例
  • Oracle中NEXTVAL案例詳解

標(biāo)簽:阜陽 酒泉 貴港 雞西 AXB 萍鄉(xiāng) 衡水 張掖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle存儲過程案例詳解》,本文關(guān)鍵詞  Oracle,存儲,過程,案例,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle存儲過程案例詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle存儲過程案例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品一区二区在线观看| 久久夜色精品国产欧美乱极品| 一区二区三区欧美亚洲| 国产剧情av麻豆香蕉精品| 日韩精品一区二区三区四区| 日韩精品亚洲一区| 在线观看网站黄不卡| 亚洲妇熟xx妇色黄| 欧美大片免费久久精品三p| 精品中文av资源站在线观看| 久久尤物电影视频在线观看| 日本不卡的三区四区五区| 欧美一区二区三区电影| 日韩电影在线看| 国产精品一卡二| 美女视频黄 久久| 亚洲美女屁股眼交| 久久国产精品一区二区| 亚洲欧美日韩久久精品| 一区二区三区四区精品在线视频| 亚洲欧美乱综合| 亚洲女同ⅹxx女同tv| 丁香啪啪综合成人亚洲小说 | 亚洲国产日日夜夜| 91小宝寻花一区二区三区| 亚洲午夜av在线| 五月天视频一区| 在线不卡中文字幕播放| 午夜精品福利一区二区三区蜜桃| 欧美精品色一区二区三区| 一本大道av伊人久久综合| 成人国产一区二区三区精品| 精品成人在线观看| 免费观看在线色综合| 蜜桃视频免费观看一区| 综合色天天鬼久久鬼色| 国产精品网友自拍| 欧美日韩激情一区| 国产精品一区在线| 亚洲日本一区二区| 精品免费日韩av| 日日骚欧美日韩| 国产精品丝袜一区| 久久久久久久av麻豆果冻| 在线影院国内精品| 丁香婷婷深情五月亚洲| 欧美96一区二区免费视频| 亚洲成人综合网站| 91久久精品一区二区| 成人精品小蝌蚪| 精品一区二区影视| 国产亚洲短视频| 色婷婷综合久久久久中文| 99re视频这里只有精品| 欧洲生活片亚洲生活在线观看| 色呦呦网站一区| 亚洲国产人成综合网站| 国产精品欧美久久久久无广告| 日韩一区二区免费视频| 日本伊人色综合网| 亚洲一二三专区| 成人欧美一区二区三区1314| 一区二区三区加勒比av| 日韩在线a电影| 丁香一区二区三区| 日韩欧美成人一区| 亚洲一级二级在线| 99久久国产综合色|国产精品| 亚洲欧美另类久久久精品2019| 一区二区三区中文字幕电影| 丝袜诱惑亚洲看片| 91在线丨porny丨国产| 欧美日韩精品一区视频| 国产精品美女一区二区| 亚洲精品网站在线观看| 午夜成人在线视频| 国产福利电影一区二区三区| jlzzjlzz国产精品久久| 国产亚洲1区2区3区| 亚洲五码中文字幕| 国产一二精品视频| 色婷婷亚洲精品| 亚洲v日本v欧美v久久精品| 国产精品18久久久久久久网站| 国产成人午夜片在线观看高清观看| 欧美挠脚心视频网站| 久久综合狠狠综合久久综合88| 日日噜噜夜夜狠狠视频欧美人 | 色婷婷激情一区二区三区| 1区2区3区精品视频| 在线观看视频一区二区| 看电影不卡的网站| 亚洲黄色av一区| 欧美精品一区二区蜜臀亚洲| 欧美三级中文字幕在线观看| 国产精品免费av| 91小视频在线免费看| 亚洲国产中文字幕| 日韩视频123| 亚洲人吸女人奶水| thepron国产精品| 亚洲国产成人高清精品| 日韩一区二区三区四区五区六区| 国产剧情一区二区三区| 亚洲女与黑人做爰| 51精品久久久久久久蜜臀| 亚洲成人动漫精品| 日韩精品最新网址| 久久99精品国产91久久来源| 国产欧美日韩综合| 欧美一级艳片视频免费观看| 黄色小说综合网站| 亚洲午夜激情av| 久久综合精品国产一区二区三区 | 精品国产麻豆免费人成网站| 国内成人自拍视频| 亚洲国产成人精品视频| 国产精品久久久久久久浪潮网站 | 欧美最猛性xxxxx直播| 国产很黄免费观看久久| 国产在线观看免费一区| 国产69精品久久久久毛片| 国产又黄又大久久| 国产精品乱人伦中文| 风流少妇一区二区| 久久香蕉国产线看观看99| 日韩欧美国产综合在线一区二区三区| 99精品国产99久久久久久白柏 | 日韩一区在线看| 国产精品午夜在线观看| 亚洲国产精品99久久久久久久久 | 99re热视频这里只精品| 99久久99久久久精品齐齐| 一本久道中文字幕精品亚洲嫩| 在线免费观看一区| 日韩欧美在线综合网| 国产视频一区二区在线| 亚洲综合色在线| 国产精品1区2区3区在线观看| 91丨porny丨首页| 欧美日韩精品高清| 国产精品私人自拍| 精品在线免费观看| 欧美日产国产精品| 亚洲一区二区欧美激情| 成人免费三级在线| 精品国产91亚洲一区二区三区婷婷| 亚洲三级在线免费| 一本到不卡免费一区二区| 国产精品视频一二三区| 久88久久88久久久| 欧美成人三级在线| 欧美aⅴ一区二区三区视频| 欧美精品久久久久久久多人混战 | 奇米色一区二区| 欧美一级二级在线观看| 男女男精品网站| 日韩一级大片在线观看| 狠狠色丁香婷婷综合久久片| 欧美精品成人一区二区三区四区| 日韩高清在线观看| 欧美一区2区视频在线观看| 麻豆精品国产91久久久久久| 3d成人动漫网站| 激情图片小说一区| 一区二区三区在线观看国产| 国产一区免费电影| 色94色欧美sute亚洲13| 中文字幕精品一区| 成人成人成人在线视频| 久久综合色鬼综合色| 欧美老女人第四色| 曰韩精品一区二区| 日韩精品在线网站| 一区二区三区在线免费视频| 久久综合九色综合欧美98| 91影院在线观看| 日韩精品国产欧美| 欧美视频在线观看一区二区| av成人老司机| 日韩国产一二三区| 欧美喷潮久久久xxxxx| 免费在线观看日韩欧美| 国产精品国产馆在线真实露脸| 成人亚洲精品久久久久软件| 亚洲福中文字幕伊人影院| 欧美一激情一区二区三区| 成人av影视在线观看| 国产一区二区三区在线看麻豆 | 亚洲第一二三四区| 国产午夜精品一区二区三区嫩草| 欧美精品久久久久久久久老牛影院| 亚洲欧美激情在线| 国产高清成人在线| 一级精品视频在线观看宜春院| 91精品婷婷国产综合久久竹菊| 91女人视频在线观看| www.色精品| 春色校园综合激情亚洲| 成人av高清在线|