標籤:
在大專時候學的專業是資料庫管理專業,在學校學了各種各樣的資料 MSSQL、ORACLE、MySQL。
那時候學資料大部分只學到了些皮毛,僅僅只會按照書上SQL語句,輸入電腦得出結果,就很有成就感。
對於高階課程預存程序就有些難度了,那時候也沒學好預存程序。最近項目中用到預存程序,才知道預存程序的重要性。
預存程序幾乎可以解決所有商務邏輯,我們可以用預存程序取代代碼中的邏輯。
這樣代碼只要關心輸入參數得出想要的結果,可以大大簡化用戶端開發。
但因為預存程序本身文法並不優美,閱讀起來會有些吃力,常常會看到一個預存程序有上千行代碼,可讀性很差。
預存程序在一些場合非常有用,比如常用的 分頁預存程序、批次更新處理資料。
所以還是有必要掌握學習預存程序的,特別是一些傳統軟體行業,預存程序就是他們的核心。
以下是自己總結 預存程序的一些文法:
create or replace procedurre my_proce
(
user_name varchar2(20),
out out_cursor sys_cursor
) as
declare
cursor my_cursor is select * from tab_users;
tab_row tab_user%rowtype;
user_password tab_users.user_password%type;
begin
--幾種調用遊標的方式
open cursor my_cursor;
--loop 方式
loop
fetch tab_row in my_cursor
dbms_output.putline(tab_row.user_name);
exit when my_sursor%nofound
end loop;
--while 方式
while tab_row%found loop
fetch tab_row in my_cursor;
dbms_output.putline(tab_row.password);
end loop;
-- for 方式 不用顯示開啟遊標
for tab_row in my_cursor loop
dbms_output.put_line(tab_row.username);
end loop;
-- open for sql語句
open out_cursor for ‘select * from tab_users‘;
end;
Oracle預存程序的理解