使用oracle的儲存過程的例子

2022-05-10 14:42:09 字數 1886 閱讀 6716

十幾年沒有用oracle的儲存過程了,有些東西已經忘了,沒有想到今天又要用。在這裡寫個例子。

它演示了儲存過程的格式,游標的使用,迴圈、判斷的使用,還有直接執行乙個拼接的sql的用法。

以下是**:

create

orreplace

procedure wanglc_test is

v_table_name

varchar2(50

); v_sql

varchar2(4000

);

cursor cur_get_users is

select username, created from

all_users;

v_username

varchar2(50

); v_created date;

begin

dbms_output.put_line(to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss

') ||

'call procedure wanglc_test begin...');

open

cur_get_users;

loop

fetch

cur_get_users

into

v_username, v_created;

exit

when cur_get_users%

notfound;

dbms_output.put_line(to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss

') ||''

||v_username ||'

-- '

||v_created);

if (v_username =

'sys

'or v_username =

'system

') then

dbms_output.put_line(to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss

') ||''

||v_username ||'

is dba!!!');

/*insert into sys_user(name,created) values('sys',sysdate)

*/v_sql :='

insert into sys_user(name,created) values(

'''|| v_username ||

''',sysdate)';

dbms_output.put_line(to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss

') ||''

||v_sql);

execute

immediate v_sql;

execute immediate '

commit';

endif;

endloop;

close

cur_get_users;

dbms_output.put_line(to_char(sysdate,

'yyyy-mm-dd hh24:mi:ss

') ||

'call procedure wanglc_test end.');

end wanglc_test;

如果儲存過程編譯出錯,可以在這裡找錯誤點:

select * from all_errors where name = upper('wanglc_test');

另外,可以在plsql developer中右鍵點選儲存過程名稱進行測試。此處略。

oracle 儲存過程例1

一 功能設計 開發目標研究生招生系統,要求設計pl sql程式對考生的成績資料進行處理,處理的邏輯是根據每門專業課的最低分數線和總分的最低分數線自動將考生歸類為錄取考生 調劑考生 落選考生。為此設計2個資料表,graduate資料表存放考生成績,result資料表存放處理結果,pl sql程式完成的...

Oracle 儲存過程練習小樣例

建立更新的儲存過程,輸錯訂單號顯示訂單不存在 create or replace procedure upd shipdate orderid number,shipdate date ise no row exception begin update ord set v shipdate ship...

Oracle的儲存過程。

近日,因為工作需要,時間投入到寫儲存過程的中。下面貼上儲存過程。進行分析,以便自己記憶,和朋友分享儲存過程的寫法。曾幾何時,認為儲存過程很難,現在看來也並非如此。此儲存過程乃是我們用到遞迴刪除。宣告乙個帶引數的儲存過程,引數都是varchar型,如果帶有輸出引數的話,引數後面跟的型別必須有個out ...