當前位置:首頁 » 存儲配置 » vboracle存儲過程

vboracle存儲過程

發布時間: 2022-07-30 05:32:05

1. oracle中的存儲過程怎麼寫

Oracle存儲過程寫法實例

總結項目中寫的存儲過程例子:
Oracle存儲過程基本語法 存儲過程
1 CREATE OR REPLACE PROCEDURE 存儲過程名
2 IS/AS
3 BEGIN
4 NULL;
5 EXCEIPTION;
6 END;

1、創建存儲過程,後面可用is或者as:
create or replace procere PRO_COMPLAIN_TEMPLATE as

2、定義變數,此處用到了%TYPE和%ROWTYPE,參考 /database/201211/168564.html ,另外定義了一個游標,TEM_INSTANCE TEMPLATE_CUR%ROWTYPE這個類型定義必須要在游標定義之後:
NEED_DO_FOR_ZL INTEGER;
CURRENT_MAX_ID MEMO_TEMPLET.TEMPLET_ID%TYPE;
CURSOR TEMPLATE_CUR IS SELECT TEMPLET_NAME, TEMPLET_CONTENT FROM SYS_COMPLAINT_TEMPLET;
TEM_INSTANCE TEMPLATE_CUR%ROWTYPE;
3、begin開始塊:
begin

4、該插入語句使用了DBLINK,還有使用DBMS_OUTPUT.put_line('列印信息')進行信息輸出:
insert into MEMO_TEMPLET (TEMPLET_ID, TEMPLET_CONTENT, TEMPLET_TYPE, TEMPLET_MEMO) (SELECT * FROM MEMO_TEMPLET@COMPANY);

SELECT COUNT(*) INTO NEED_DO_FOR_ZL FROM SYS_COMPLAINT_TEMPLET;
IF(NEED_DO_FOR_ZL > 0) THEN
DBMS_OUTPUT.put_line('列印信息');
SELECT MAX(TEMPLET_ID)+1 INTO CURRENT_MAX_ID FROM MEMO_TEMPLET;
DBMS_OUTPUT.put_line('MEMO_TEMPLET最大ID' || CURRENT_MAX_ID);
FOR TEM_INSTANCE IN TEMPLATE_CUR LOOP
INSERT INTO MEMO_TEMPLET (TEMPLET_ID, TEMPLET_CONTENT,
TEMPLET_TYPE, TEMPLET_MEMO) VALUES (CURRENT_MAX_ID,
TEM_INSTANCE.TEMPLET_CONTENT, '7', NULL);
CURRENT_MAX_ID := CURRENT_MAX_ID + 1;
DBMS_OUTPUT.put_line(TEM_INSTANCE.TEMPLET_CONTENT);
END LOOP;
END IF;
COMMIT;
www.2cto.com
4、exception塊,使用WHEN OTHERS THEN,其中用raise可顯示錯誤信息:
exception
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode);
raise;
ROLLBACK;
IF TEMPLATE_CUR%ISOPEN THEN
CLOSE TEMPLATE_CUR;
END IF;
DBMS_OUTPUT.put_line('列印信息');
end;

註:關於游標的使用,如果像本例中使用for循環去遍歷游標的話則不需要顯式的去用open/close
cursor打開和關閉游標,此處會自己處理,如果使用fetch
into的話就需要顯式開關游標,另外任意執行一個update操作,用隱式游標sql的屬性%found,%notfound,%rowcount,%isopen觀察update語句的執行情況,也可以使用來判斷游標狀態,如IF
TEMPLATE_CUR%ISOPEN THEN。

2. 在vb中存儲過程是什麼怎麼用

  1. 使用 ADODB.Command:

    1. CommandType = adCmdStoredProc ;

    2. 用Parameters.Append 增加參數 ;

    3. CommandText = "過程名" ;

    4. Execute 執行

  2. 使用 ADODB.Command :

    1. CommandType = adCmdText

    2. CommandText= "exec 過程名 " & 拼接的參數

    3. Execute 執行

3. VB程序如何用ADO向Oracle存儲過程傳遞數組參數

何苦如此呢,要達到最高效率,當然不能再去解析字元串了,建一張臨時表tab,把你要傳遞的參數插入tab中,存儲過程中直接關聯下tab不就獲取到你要的數據了么

4. oracle 存儲過程

create table dept
(deptno number,
dname varchar2(20),
loc varchar2(20)
)
1.如果你是取出單個的,你可以定義一個或者多個變數,將取出的值賦給變數
例如:

create or replace procere dept_procere(a in varchar2)
is
v_no number;
v_a varchar2(20);
begin
select a.deptno,a.loc into v_no,v_a
from dept a
where a.dname=a;
dbms_output.put_line('學號為:'||v_no||);
end;
2.如果你取出的是一個結果集,你可以用游標(一個簡單的例子)
create or replace procere dept_procere(a in varchar2,v_a out dept%rowtype)
is
--聲明游標
cursor c_de(a in varchar2)
is select * from dept where dname=a;
begin
--打開游標,對其中找到的記錄進行遍歷
open c_de(a);
loop
fetch c_de into v_a;
exit when c_de%notfound;
end loop;
close c_de;
dbms_output.put_line('deptno:'||v_a.deptno);
dbms_output.put_line('dname:'||v_a.dname);
dbms_output.put_line('loc:'||v_a.loc);
end;

3.可注意:在創建存儲過程的時候加上or replace,如果遇到重名的存儲過程將替換掉!
4.定義變數後面記得加上分號
5.oracle中可以對它直接賦值,可不用set, v_a:='a';
(6.給變數賦值的時候注意它的數據類型 a要單引號)
7.如果你這存儲過程是將參數賦值給一個你定義的變數的話,那這樣你不覺得是多此一舉么?一般將參數賦值給你定義的變數的話,可以進行數據類型轉換!可在此存儲過程中,沒發現它的用處
8.你取出來的數據,要放在變數或是游標中,顯示出來,不然你寫出來的存儲過程有什麼用呢?所以 select ...into ...

5. 急問VB中通過ODBC調用Oracle中存儲過程無返回得問題

VB連接orcale意義不大,如果有人需要開發這樣的程序,一定是腦袋進水了。

6. VB調用Oracle存儲過程問題

你首先需要保證存儲過程沒錯誤,方法是用plsql 的test功能進行測試一下。
創建一個test存儲過程,裡面的語句是用你上面的參數調用存儲過程,
對這個test過程進行跟蹤測試,找出問題修正。

7. oracle的存儲過程

第一步:找到proceres,右鍵新建

第二步:在name中輸入存儲過程名字(這里輸入的就是你以後需要調用的名字),parameters後是參數,在裡面定義參數的類型。
第三步:編寫存儲過程語句。
4 第四步: 存儲過程調用
CallableStatement
cs=conn.divpareCall("{call
mymd_gis_pro(?,?,?,?,?)}"); //1代表第一個參數,setint表示參數類型是int型 cs.setInt(1,188);

cs.setInt(2,12); cs.setInt(3,12);

...... //執行Oracle存儲過程
cs.execute();

8. Oracle資料庫的存儲過程怎麼寫

1 CREATE OR REPLACE PROCEDURE 存儲過程名
2 IS
3 BEGIN
4 NULL;
5 END;

行1:
CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle資料庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它;
行2:
IS關鍵詞表明後面將跟隨一個PL/SQL體。
行3:
BEGIN關鍵詞表明PL/SQL體的開始。
行4:
NULL PL/SQL語句表明什麼事都不做,這句不能刪去,因為PL/SQL體中至少需要有一句;
行5:
END關鍵詞表明PL/SQL體的結束.
存儲過程創建語法:
create or replace procere 存儲過程名(param1 in type,param2 out type)
as
變數1 類型(值范圍); --vs_msgVARCHAR2(4000);
變數2 類型(值范圍);
Begin
Select count(*) into 變數1 from 表A where列名=param1;

If (判斷條件) then
Select 列名 into 變數2 from 表A where列名=param1;
Dbms_output。Put_line(『列印信息』);
Elsif (判斷條件) then
Dbms_output。Put_line(『列印信息』);
Else
Raise 異常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;

9. ORACLE 存儲過程是什麼 它的用處,好處是什麼概念性的東西多點。。

定義:存儲過程(Stored Procere )是一組為了完成特定功能的SQL 語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。
存儲過程是由流控制和SQL 語句書寫的過程,這個過程經編譯和優化後存儲在資料庫伺服器中,應用程序使用時只要調用即可。在ORACLE 中,若干個有聯系的過程可以組合在一起構成程序包。
優點:
1.存儲過程只在創造時進行編譯,以後每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。
2.當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來與資料庫提供的事務處理結合一起使用。
3.存儲過程可以重復使用,可減少資料庫開發人員的工作量。
4.安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

簡單說,你在你的機器上寫了個存儲過程,這個存儲過程像那些表裡的數據一樣被放在遙遠的資料庫伺服器當中,但是它又是可執行的代碼,其他能連到資料庫伺服器的用戶,可以調用你寫的存儲過程
它的作用是隱藏細節,就是說,你寫的存儲過程代碼可能很復雜,但是其他人調用它卻很簡單,不用具體知道它是如何做的,且一次能完成多個指令

oracle有系統存儲過程和自定義存儲過程2種存儲過程。
系統存儲過程就是由oracle預先提供的一組完成特定功能的存儲過程,安裝完oracle就有了。
自定義存儲過程就是存在oracle資料庫里由一組plsql語句組成的自定義過程(procere)。它可以供其它oracle自定義存儲過程、自定義函數和job調用或者由客戶端程序調用。

熱點內容
21款昂科威哪個配置好 發布:2024-10-06 02:20:39 瀏覽:835
拆裝空調壓縮機 發布:2024-10-06 01:59:47 瀏覽:419
dl演算法 發布:2024-10-06 01:59:44 瀏覽:845
寵物商店java 發布:2024-10-06 01:59:43 瀏覽:536
androidimageview文字 發布:2024-10-06 01:53:55 瀏覽:819
檢查電腦與伺服器的連通性和路徑 發布:2024-10-06 01:37:38 瀏覽:432
宋春麗訪問 發布:2024-10-06 01:34:23 瀏覽:677
美國往事ftp 發布:2024-10-06 01:29:03 瀏覽:772
dtu編程 發布:2024-10-06 01:23:30 瀏覽:595
照片視頻加密 發布:2024-10-05 23:58:58 瀏覽:480