一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

[oracle編程]pl/sql

 我的java之路 2016-12-20
說明: 使用oracle10.2 scott方案下的emp表做的練習,所有塊都驗證過
注意: 要先打開oracle的打印選項
聲明:  多處參照韓順平oracle視頻,所以命名基本出現(xiàn)為sp_..
這里用的都是塊,如果要寫成過程,請參照下面的語法,調用方法為
exec 過程名
call 過程名  2種
  1. --過程的語法 更改某個人的工資   
  2. create or replace procedure sp_pro3(spName varchar2,newSal number) is   
  3. begin   
  4.    update emp set sal=newSal where ename=spName;    
  5. end;   
  6. --包   生成一個包的語法   
  7. create or replace package abc is   
  8.    
  9. end;   
--有了塊之后我們很容易就可以進行封裝,所以為了簡單起見使用塊來學習和試驗
--如何使用標量****************************************常量,一般變量

  1. --輸入員工號得到工資等信息   
  2. --稅率為0.03   
  3. declare    
  4. --常量用c開頭,變量讓v開頭   
  5. c_tax_rate number(7,2):=0.03;   
  6. v_ename varchar(10);   
  7. v_sal number(7,2);   
  8. v_tax_sal number(7,2);   
  9. begin    
  10. select ename,sal into v_ename,v_sal from emp where empno=&no;   
  11. --計算所得稅,賦值符號一定不能錯   
  12. v_tax_sal:=v_sal*c_tax_rate;   
  13. --輸出信息   
  14. dbms_output.put_line('此員工的信息如下:'||v_ename||'  工資:'||v_sal||'  稅:'||v_tax_sal);   
  15. end;  

--使用%type方式復制變量類型,減少錯誤。
v_ename varchar(10);
--可以寫為
v_ename emp.ename%type;

  1. --讓我們對上述的代碼改寫下   
  2. declare   
  3. c_tax_rate number(7,2):=0.03;   
  4. v_ename emp.ename%type;   
  5. v_sal emp.sal%type;   
  6. v_tax_sal emp.sal%type;   
  7. begin    
  8. select ename,sal into v_ename,v_sal from emp where empno=&no;   
  9. v_tax_sal:=v_sal*c_tax_rate;   
  10. dbms_output.put_line('此員工的信息如下:'||v_ename||'  工資:'||v_sal||'  稅:'||v_tax_sal);   
  11. end;   
--復合變量的使用方法***************************************記錄和表
--記錄類似高級語言中的結構體,表相當于數組
  1. --使用記錄變量的實例   
  2. declare   
  3. --定義一個pl/sql記錄類型   
  4. type emp_record_type is record(name emp.ename%type,sal emp.sal%type);   
  5. --給記錄一個別名   
  6. sp_record emp_record_type;   
  7. begin   
  8. select ename,sal into sp_record from emp where empno=&no;   
  9. --獲取記錄里的信息的方法   
  10. dbms_output.put_line('此員工的信息如下:'||sp_record.name||'  工資:'||sp_record.sal);   
  11. end;   

  1. --表類型使用的案例(接受一個值)   
  2. declare   
  3. --定義一個table類型的變量,存放的類型是emp.ename%type   
  4. --使用的下標是整數型的   
  5. type sp_table_type is table of emp.ename%type index by binary_integer;   
  6. sp_table sp_table_type;   
  7. begin    
  8. --下標要對應才可以,可以自己定義,這樣寫只能取出一個記錄   
  9. select ename into sp_table(0) from emp where empno=7788;   
  10. dbms_output.put_line('員工名'||sp_table(0));   
  11. end;    

 
--參照變量(使用最多的)****************************游標和對象類型
--一般都是用游標變量cursor
--案例1  寫一個塊 輸入部門號得到所有所屬部門人員的信息(姓名和工資)

  1. declare   
  2. --定義游標類型  sp_cursor   
  3. type sp_emp_cursor is ref cursor;   
  4. --定義游標變量   
  5. test_cursor sp_emp_cursor;   
  6. --定義變量接受姓名和工資   
  7. v_ename emp.ename%type;   
  8. v_sal emp.sal%type;   
  9. begin   
  10. --把一個游標和select結合   
  11. open test_cursor for select ename,sal from emp where deptno=&no;   
  12. --循環(huán)取出數據,循環(huán)結構使用loop結構   
  13. loop   
  14.   --fetch是取出游標的意思   
  15.    fetch test_cursor into v_ename,v_sal;   
  16.   --判斷退出的條件,沒有就是死循環(huán)了哦   
  17.    exit when test_cursor%notfound;   
  18.   --輸出   
  19.    dbms_output.put_line('姓名:'||v_ename||'  工資:'||v_sal);   
  20. end loop ;   
  21. end ;   
  22. 結果  
  23.    
  24.     
  25. 姓名:ALLEN  工資:1600   
  26. 姓名:WARD  工資:1250   
  27. 姓名:MARTIN  工資:1250   
  28. 姓名:BLAKE  工資:2850   
  29. 姓名:TURNER  工資:1500   
  30. 姓名:JAMES  工資:950   
  31.     
  32. PL/SQL procedure successfully completed   

常用的就是標量 記錄 和游標了。 只要能取到值,其他的業(yè)務邏輯就可以使用變量來實現(xiàn)了。

本文出自 orangleliu筆記本 博客,請務必保留此出處http://blog.csdn.NET/orangleliu/article/details/38309417

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日本不卡在线视频中文国产| 欧美小黄片在线一级观看 | 精品人妻一区二区三区免费| 黄色三级日本在线观看| 精品久久av一二三区| 国产日韩熟女中文字幕| 日本道播放一区二区三区| 91蜜臀精品一区二区三区| 国产欧美亚洲精品自拍| 国产精品欧美一区二区三区| 精品综合欧美一区二区三区| 国产欧美日韩视频91| 欧美日韩久久精品一区二区| 白丝美女被插入视频在线观看| 99精品国产一区二区青青| 黄片在线免费看日韩欧美| 国产美女精品人人做人人爽| 激情偷拍一区二区三区视频| 一区二区福利在线视频| 在线观看免费视频你懂的| 日本和亚洲的香蕉视频| 国产日产欧美精品视频| 亚洲欧美日韩国产成人| 亚洲男人天堂成人在线视频| 亚洲综合香蕉在线视频| 国产欧美另类激情久久久| 亚洲综合精品天堂夜夜| 热久久这里只有精品视频| 男女午夜在线免费观看视频 | 视频一区日韩经典中文字幕| 亚洲精品偷拍视频免费观看| 无套内射美女视频免费在线观看| 91欧美激情在线视频| 色综合久久六月婷婷中文字幕| 日韩精品中文在线观看| 99亚洲综合精品成人网色播| 精品国产91亚洲一区二区三区 | 色哟哟国产精品免费视频| 日本在线视频播放91| 午夜久久精品福利视频| 国产中文字幕一区二区|