oracle怎麼寫儲存過程,oracle 儲存過程,寫一個簡單的Oracle儲存過程

2022-03-09 10:55:07 字數 6435 閱讀 3749

1樓:

給你示例你參考下:

----------------------------建立儲存過程:

create or replace procedure p_name--儲存過程名字

(i_var in int, --輸入引數1

o_var out varchar2 --輸出引數1)is

v_str varchar2(200); --定義儲存過程內部的區域性變數

begin

--下面是儲存過程的主體實現部分

v_str := i_var;

dbms_output.put_line(v_str);

o_var := v_str;

exception--錯誤異常處理部分

when others then

dbms_output.put_line(sqlerrm);--列印錯誤資訊

end p_name;

-----------------------------------呼叫儲存過程示例:

declare

v_in int;

v_out varchar2(50);

begin

v_in :=100;

p_name (v_in,v_out); --呼叫儲存過程p_name

dbms_output.put_line('儲存過程輸入結果為:'||v_out);

exception--錯誤異常處理部分

when others then

dbms_output.put_line(sqlerrm);--列印錯誤資訊

end;

2樓:匿名使用者

你首先要了解儲存過程包括哪些模組,哪些是必備的,哪些是可選的.

另外呢,如果有條件的話,最好能找一些模板看看別人是怎麼寫的,再結合你們公司的實際情況,做一些適當的調整.

例如create or replace procedure +過程名字(變數名 in,資料型別,變數名 out 資料型別)等

declare

變數 型別

begin

過程體exception

end等

最好有些例項,可以先模仿著寫一寫

等熟練之後呢,再自己按照自己的思路去寫

3樓:野草

create or replace procedure a(a in varchar,

b in varchar

) is

c number := 0;

begin

---具體內容

commit;

end a;

oracle 儲存過程,寫一個簡單的oracle儲存過程

4樓:匿名使用者

oracle提供的擴充套件sql功能的程式語言,語法不難,和一般的開發語言差不多,關鍵是寫好需要帶著sql調優的思想去寫。

5樓:匿名使用者

我給你發個簡單的過程吧!!你自己看看再練習。

create or replace procedure mypro(pid in number,pname in varchar2)

ispid number(10);

pname varchar2(10);

begin

insert into test5 values(pid,pname);

end;

其實過程裡面就是寫sql語句,也可以寫動態的比如:

create or replace procedure mypro(pid in number,pname in varchar2)

ispid number(10);

pname varchar2(10);

str varchar2(100);

begin

str:='insert into test5 values(:1,:2)';

execute immediate str using pid,pname;

end;

:1和:2是佔位符號。

6樓:

hehe,我也是小白,只寫過最最簡單那個儲存過程(自己練習完的),但是都要加油啊,也沒什麼經驗給你,因為儲存過程裡的查詢老要寫into,煩,反正只能告訴你,可以看下pl/sql。

是你說你不會寫過程體啊,不要說我不會瞎提意見啊,誰讓你沒說清楚的具體**不會的。

7樓:匿名使用者

儲存過程可以實現擴充套件性極強的功能,易難都有;

下面給你個基礎列子:

create or replace procedure test_owen -定義名稱

(in_bakk_id in number, -定義輸入值

on_code out number) -定義輸出值

is--v_bakk varchar(8);

begin -開始實施

insert into an_bakk_mid select * from an_bakk where bakk_id = in_bakk_id; --操作語句提取資料到中間表

end test_owen; -結束

8樓:了了紛紛

oracle資料庫用的sql語言是pl/sql,有自己特定的語法,不過與其他版本sql的語法差不多。

create or replace procedure 你的過程名(形參列表) is

過程中用到的引數宣告

begin

過程主體

end;

9樓:

引數變數

**塊異常處理

記錄日誌

oracle儲存過程中 與 或 怎麼寫

10樓:育知同創教育

與:and 或:or

在實際使用中:

and的優先順序大於or,試驗如下:

select 'y' from dual where 1=2 and 1=2 or 1=1;

select 'y' from dual where (1=2 and 1=2) or 1=1;

--no value

select 'y' from dual where 1=2 and (1=2 or 1=1);

11樓:匿名使用者

與(and):

if 2*6=12 and 2*8=16 then...

或(or):

if 2*6=12 or 2*8=16 then...

12樓:匿名使用者

and 是與,or是或

求教學oracle儲存過程的寫法,謝謝,需要詳解

13樓:智者總要千慮

create or replace procedure fun_xsremobile

(par_intinterid_c int,par_lngmobile_c number,date_c number

)is--定義變數

begin

select id,

cpid,

mobstate,

settled,

senddate,

rececount,

islocked,

gateid,

extdata,

recets

--into 到變數

from xsremobile

where interid = par_intinterid_cand mobile = par_lngmobile_cand senddate >= date_cand rownum<=1;

end fun_xsremobile;

oracle怎麼寫儲存過程?

14樓:匿名使用者

你首先要了解儲存過程包括哪些模組,哪些是必備的,哪些是可選的.

另外呢,如果有條件的話,最好能找一些模板看看別人是怎麼寫的,再結合你們公司的實際情況,做一些適當的調整.

例如create or replace procedure +過程名字(變數名 in,資料型別,變數名 out 資料型別)等

declare

變數 型別

begin

過程體exception

end等

最好有些例項,可以先模仿著寫一寫

等熟練之後呢,再自己按照自己的思路去寫

如何編寫儲存過程

15樓:博學小趙是吃貨

//建立儲存過程

create procedure userdata(

in id int

begin

select * from userdata where userflag = id;

end;

其中in是傳進去的變數;

drop procedure userdata;//銷燬這個儲存過程。

call userdata(2) //呼叫儲存過程。

擴充套件資料:

create procedure [擁有者.]儲存過程名[;程式編號]

[(引數#1,…引數#1024)]

[with

[for replication]

as 程式行

其中儲存過程名不能超過128個字。每個儲存過程中最多設定1024個引數

(sql server 7.0以上版本),引數的使用方法如下:

@引數名資料型別[varying] [=內定值] [output]。

每個引數名前要有一個「@」符號,每一個儲存過程的引數僅為該程式內部使用,引數的型別除了image外,其他sql server所支援的資料型別都可使用。

[內定值]相當於我們在建立資料庫時設定一個欄位的預設值,這裡是為這個引數設定預設值。[output]是用來指定該引數是既有輸入又有輸出值的,也就是在呼叫了這個儲存過程時,如果所指定的引數值是我們需要輸入的引數。

同時也需要在結果中輸出的,則該項必須為output,而如果只是做輸出引數用,可以用cursor,同時在使用該引數時,必須指定varying和output這兩個語句。

16樓:

第一步:點選資料庫下的「可程式設計性」,選擇「儲存過程」,點選滑鼠右鍵,選擇「新建儲存過程」

第二步:在create procedure 後 輸入儲存過程的名字,緊跟著的就是定義儲存過程的引數,接下來就可以去編寫自己所需要組裝的儲存過程語句了

第三步: 編譯儲存過程,在工具欄上按下執行按鈕,如果沒有錯誤,就編寫成功了。

第四步:呼叫:在sqlserver的語句查詢框中,輸入exec 儲存過程名 引數,執行就可以了。

基本語法格式如下:中括號帶的是可選項

create proc | procedure pro_name

[ [=預設值] [output],

[=預設值] [output],

....]as

begin

sql_statements

--業務處理end

oracle的儲存過程怎麼寫?

17樓:帥惜玉

create or replace function pagesize(p_sql varchar2,pno number,pnosize number,pcount out number)

return sys_refcursor

asv_sql varchar(2000);

ccount number;

tmpsql varchar2(2000);

cur_data sys_refcursor;

begin

v_sql:='select count(*) from ('||p_sql||') t';

tmpsql:='select * from (select rownum rowa,d.* from ('||p_sql||') d where rownum<='||pno*pnosize||') where rowa>'||(pno-1)*pnosize;

execute immediate v_sql into ccount;

pcount:=ceil(ccount/pnosize);

open cur_data for tmpsql;

return cur_data;

end;

這是一個分頁的儲存過程

oracle建立儲存過程有小紅叉儲存過程新手請

說一下你的問題 在儲存過程中,一個select語句中,查詢的欄位必須要放到變數中也就是select 欄位1 into 變數1 from 表名 where 條件 這樣才不會報錯 而你這個,沒什麼實際的意義 你要是非想讓它不紅叉,可以這樣 create or replace procedure p tf...

oracle儲存過程as和is區別

第一個問題 is和as是可以互用的,用哪個都沒關係的第二個問題 在外專面 第三個問題 過程屬中沒有declare關鍵字,declare用在語句塊中 第四個問題 估計你看到的是做遊標定義的東東,抑或者直接就一句sql。沒區別,我更喜歡用as,因為用鍵盤比較方便 oracle儲存過程中is和as的區別?...

oracle儲存過程轉換型別問題

你的to date 2010 12 30 yyyy mm dd 函式寫錯了,因為減號的優先順序比 高,2010 12 30 得到的是一個4位數,寫成下面這樣就行了 to date 2010 12 1 yyyy mm dd 還有這樣寫雖然oracle寫可以,年月最好寫的規範一點,寫成to date 2...