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...