學習Oracle中的過程一點小結!

2021-05-17 09:32:10 字數 2450 閱讀 7625

最近接觸oracle的東西,剛剛開始學習並同時做點東西,最近老是使用儲存過程。現在通過我個人的使用簡單說下自己的感受!

在設計儲存過程中,一本通過二個方式實現:

1:就是簡單的實現游標

---過程的宣告---

procedure  procedure_name

( var_1  in xx1%type,--過程接收引數1,並給出型別

var_2 in  xx2%type,--過程接收引數2,並給出型別

......                         --宣告過程需要接收的引數,並給出型別

varout  out cursor    ---宣告乙個變數,為游標的變數,用來返回結果

) is

--------開始------------

begin

-------刪除舊的資料(根據實際情況而定)---------------

delete from  table_name

where

----進行插入的操作---------

insert into table_name  (x1,x2,.....)

select table_name

from

where

-------開始進行相應的操作--------------

update  table_name

set  

xx1=(),

xx2=(),

xxn=()

where  條件;

commit;

-----開啟游標----

open varout for

select xx1,

xx2,

xxnfrom

table_name

where  條件;

end;

這種方式是一次完成每個屬性列的值。

下面第二個方式是 一次完成一條記錄

procedure  procedure_name

( var1  in   設定相應型別,-----宣告過程需要接收的引數及型別

var2  in  設定相應型別,----宣告過程需要接收的引數及型別

......                          ---- 宣告過程需接收的引數及型別

varout out  cursor      ------宣告乙個游標型別 用來返回資料集合

) is

---------宣告變數用來儲存游標的資料或需要更新的變數---------

var1     型別;

var2   型別;

var3   型別;

----宣告用來儲存游標的變數

cvar1  型別;

cvar2  型別;

---宣告游標----------------------

cursor  tc_cursor  is

select  xxvar

from 表名

where 條件;

begin

-------刪除舊資料-----------

delete from 

where  條件;

------開啟游標-------

open  tc_cursor ;

fetch  tc_cursor

into   cvar1,cvar2,....

-------判斷是否還有-----

while  tc_cursor%found  loop;-----如果游標還有可選的就迴圈

-------進行相應的操作(此處進行的統計計算一些的東西)-----------

select  xx

into   var1

from

where  條件;

select ***

into  var2

from

where  條件;

if(判斷游標裡是否有資料,如果有資料) then

into  table_name

values

上面進行更新或統計的資料的一條記錄,插入到相應的表裡

end  if;

-------把游標裡的資料放到宣告的變數中-------

fetch  tc_var

into  cvar1,....;

end  loop;---結束迴圈

close tc_cursor; --關閉游標

commit; ---提交上

------開啟過程中的游標返回資料集合--

open  varout for 

select 需要返回的資料各個屬性

from 表名

where 條件;

end;

這種方法是一條一條記錄的進行操作的。

這是我在學習oracle並使用它 進行 統計更新時候使用的過程,剛開學習,哪有不對 希望大家指正批評!

Numpy中的一點小知識

train set x orig,train set y,test set x orig,test set y,classes load dataset train set x orig 一組 plt.imshow train set x orig index 展示出第index train set...

Android setResult 的一點小問題

在android的activity中,我們經常使用startactivityforresult啟動另外乙個activity,例如從activity a啟動 activity b,那b何時呼叫setresult合適,能不能再finish 之後呼叫?在這裡做一下記錄。直接看下activity的原始碼se...

一點小感悟

今天去了華為的機試,說實話,題目不是很難,但是自己並沒有發揮的很好,只寫出來一題半,第一題非常簡單 兩個兩位數a,b,輸出乙個四位數,將a的十位和個位放到c的十位和百位上,b的十位和個位放到c的個位和千位上,直接轉化為字串拼接一下就行。第二題有點難度 給出1,3,9,27,81,這幾個數,輸入1 1...