SQL語句中儲存過程和呼叫,oracle SQL語句中怎麼樣呼叫儲存過程?

時間 2022-03-08 15:00:26

1樓:

這些是c#的語句,訪問的是windows窗體中的控制項,而儲存過程是不能訪問窗體中的控制項的。你這個要求是無法實現的。

oracle sql語句中怎麼樣呼叫儲存過程?

如何在select語句中呼叫儲存過程的結果

2樓:果然夠

sql server中儲存過程的返回值不是通過return語句返回的(return語句是在使用者自定義函式中使用的),而是專通過儲存過程的引數來返屬回,在定義儲存過程的引數時使用關鍵字output來指定此引數是返回值。 而在呼叫儲存過程時,也必須使用關鍵字給接收返

mysql裡面sql語句呼叫儲存過程,該如何寫?

3樓:大野瘦子

這樣:create procedure sp_add(a int, b int,out c int)

begin

set c=a+ b;

end;

呼叫過程:

call sp_add (1,2,@a);

select @a;

注意事項

儲存過程(stored procedure)是一組為了完成特定功能的sql語句集合,經編譯後儲存在伺服器端的資料庫中,利用儲存過程可以加速sql語句的執行。

儲存過程分為系統儲存過程和自定義儲存過程。

系統儲存過程在master資料庫中,但是在其他的資料庫中可以直接呼叫,並且在呼叫時不必在儲存過程前加上資料庫名,因為在建立乙個新資料庫時,系統儲存過程在新的資料庫中會自動建立。

自定義儲存過程,由使用者建立並能完成某一特定功能的儲存過程,儲存過程既可以有引數又有返回值,但是它與函式不同,儲存過程的返回值只是指明執行是否成功,並不能像函式那樣被直接呼叫,只能利用execute來執行儲存過程。

建立儲存過程

sql server建立儲存過程:

create procedure  過程名

@parameter       引數型別

@parameter      引數型別

as begin

end執行儲存過程:execute 過程名

4樓:匿名使用者

mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地

5樓:我tm不管

call sp_add();

是不是你定義的過程有問題吧,並沒有指出返回結果來像我這樣是可以的:

create procedure sp_add(a int, b int,out c int)

begin

set c=a+ b;

end;

呼叫過程:

call sp_add (1,2,@a);

select @a;

6樓:匿名使用者

就是call sp_add().但如果你要返回值應該用function。 procedure沒有返回值的。

7樓:匿名使用者

沒()的,要有結果顯示的新增out引數

比如sp_add(out int @p)

8樓:匿名使用者

exec sp_add()

???不是非常了解.

oracle sql語句中怎麼樣呼叫儲存過程

9樓:匿名使用者

呼叫oracle儲存過程用begin...end的方式。

基本語法:

begin

儲存過程名(引數1,引數2……);--如果無引數則省略括號及括號內部分

end;

如,有儲存過程:

create or replace procedure p_test

asv_begintime varchar2(20);

v_endtime varchar2(20);

v_str varchar2(10);

begin

v_begintime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');

select 'badkano' into v_str from dual;

v_endtime:=to_char(sysdate,'yyyy-mm-dd hh24:mi:ss');

dbms_output.put_line('開始時間為:'||v_begintime);

dbms_output.put_line('結束時間為:'||v_endtime);

end;

執行:begin

p_test;

end;

10樓:才

你的引數變換的種類多嗎,我們做報表,每天晚上把所有的引數變換都做一次分析,然後儲存在乙個中間表中,前台web頁面查詢的實際上是中間表的結果!

11樓:匿名使用者

sql裡無法呼叫儲存過程

函式在sql裡呼叫也是有很多條件的

12樓:匿名使用者

exec 儲存過程名

或者call 儲存過程名

13樓:紫玉羅

begin

procedure(引數列表);end

14樓:匿名使用者

給你乙個 hello world 的例子:

sql> create or replace procedure helloworld as

2 begin

3 dbms_output.put_line('hello world');

4 end helloworld;

5 /

procedure created.

sql> set serveroutput onsql>

sql> begin

2 helloworld();

3 end;

4 /

hello world

pl/sql procedure successfully completed.

sql 中儲存過程怎麼使用?

15樓:匿名使用者

--判斷

if exists(select * from sysobjects where name='grade_select_proc')

drop proc grade_select_procgo--建立

create proc grade_select_procasselect * from gradego--執行

exec grade_select_proc

16樓:匿名使用者

exec 儲存過程名

sql中儲存過程和函式的區別

17樓:匿名使用者

mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 19.mysql之儲存過程與自定義函式的區別 學習猿地

儲存過程與sql語句如何選擇

18樓:

資料庫擅長儲存與索引,在目前的網際網路系統架構中,伺服器的擴充套件要比儲存的擴充套件更簡單,

需要考慮系統可能的瓶頸在伺服器還是資料儲存,儲存過程有它的優點,應該在開發中合理的選用。

應用儲存過程的優點

儲存過程是一組預先建立並用指定的名稱儲存在資料庫伺服器上的 sql 語句,將使用比較頻繁或者比較複雜的操作,預先用 sql 語句寫好並儲存起來,以後當需要資料庫提供相同的服務時,只需再次執行該儲存過程。

1.具有更好的效能

儲存過程是預編譯的,只在建立時進行編譯,以後每次執行儲存過程都不需再重新編譯,而一般 sql 語句每執行一次就編譯一次,因此使用儲存過程可以提高資料庫執行速度。

2.功能實現更加靈活

儲存過程中可以應用條件判斷和游標等語句,有很強的靈活性,可以直接呼叫資料庫的一些內建函式,完成複雜的判斷和較複雜的運算。

3.減少網路傳輸

複雜的業務邏輯需要多條 sql 語句,當客戶機和伺服器之間的操作很多時,將產生大量的網路傳輸。如果將這些操作放在乙個儲存過程中,那麼客戶機和伺服器之間的網路傳輸就會減少,降低了網路負載。

4.具有更好的安全性

(1)資料庫管理人員可以更好的進行許可權控制,儲存過程可以遮蔽對底層資料庫物件的直接訪問,使用 execute 許可權呼叫儲存過程,無需擁有訪問底層資料庫物件的顯式許可權。

(2)在通過網路呼叫過程時,只有對執行過程的呼叫是可見的。無法看到表和資料庫物件名稱,不能嵌入sql 語句,有助於避免 sql 注入攻擊。

儲存過程的弊端

1.架構不清晰,不夠物件導向

儲存過程不太適合物件導向的設計,無法採用物件導向的方式將業務邏輯進行封裝,業務邏輯在儲存層實現,增加了業務和儲存的耦合,**的可讀性也會降低,

2.開發和維護要求比較高

儲存過程的編寫直接依賴於開發人員,如果業務邏輯改動較多,需要頻繁直接運算元據庫,大量業務降維到資料庫,很多異常不能在**中捕獲,出現問題較難排查,需要資料庫管理人員的幫助。

3.可移植性差

過多的使用儲存過程會降低系統的移植性。在對儲存進行相關擴充套件時,可能會增加一些額外的工作。

儲存過程與sql語句如何抉擇

架構設計沒有絕對,只有在當前的場景下最合適的。

普通的專案開發中,不建議大量使用儲存過程,對比sql語句,儲存過程適用於業務邏輯複雜,比較耗時,同時請求量較少的操作,例如後台大批量查詢、定期更新等。

(1)當乙個事務涉及到多個sql語句時或者涉及到對多個表的操作時可以考慮應用儲存過程

(2)在乙個事務的完成需要很複雜的商業邏輯時可以考慮應用儲存過程

(3)比較複雜的統計和彙總可以考慮應用後台儲存過程

寫SQL語句或者儲存過程,使用SQL語句建立儲存過程

試下,我也不知道行不行 oracle10g以上版本提供wmsys.wm concat select wmsys.wm concat id aa,wmsys.wm concat mawb bb from tablename where rownum 10 select ltrim max sys co...

sql中儲存過程的引數怎樣才做可以傳給select from

冬至 create or replace procedureproc test tablename varchar 100 isbegin select count from tablename end proc test 這是oracle的儲存過程,那個 不清楚加還是不加。 修正一下的說法 是sq...

Oracle中儲存過程,過程和函式有什麼區別和聯絡

聯絡 1.建立語法結構相似,都可以攜帶多個傳入引數和傳出引數。2.都是一次編譯,多次執行。區別 1.儲存過程定義關鍵字用procedure,函式定義用function。2.儲存過程中不能用return返回值,但函式中可以,而且函式中必須有return子句。3.執行方式略有不同,儲存過程的執行方式有兩...