java呼叫Oracle資料庫的儲存過程

2021-07-05 22:13:33 字數 1271 閱讀 8975

儲存過程和函式以命名的資料庫物件形式儲存於資料庫當中。

儲存在資料庫中的優點是很明顯的,因為**不儲存在本地,使用者可以在任何客戶機上登入到資料庫,並呼叫或修改**。 

* 儲存過程和函式可由資料庫提供安全保證,要想使用儲存過程和函式,需要有儲存過程和函式的所有者的授權,只有被授權的使用者或建立者本身才能執行儲存過程或呼叫函式。 

* 儲存過程和函式的資訊是寫入資料字典的,所以儲存過程可以看作是乙個公用模組,使用者編寫的pl/sql程式或其他儲存過程都可以呼叫它(但儲存過程和函式不能呼叫pl/sql程式)。乙個重複使用的功能,可以設計成為儲存過程,比如:顯示一張工資統計表,可以設計成為儲存過程;乙個經常呼叫的計算,可以設計成為儲存函式;根據雇員編號返回雇員的姓名,可以設計成儲存函式。 

* 像其他高階語言的過程和函式一樣,可以傳遞引數給儲存過程或函式,引數的傳遞也有多種方式。儲存過程可以有返回值,也可以沒有返回值,儲存過程的返回值必須通過引數帶回; 函式有一定的資料型別,像其他的標準函式一樣,我們可以通過對函式名的呼叫返回函式值。  

儲存過程和函式需要進行編譯,以排除語法錯誤,只有編譯通過才能呼叫。因為儲存過程是編譯好的**塊,因此執行起來具有高效率的優點。

create or replace procedure check_detail(param1 in varchar2,

param2 in varchar2,

param3 out varchar2) is

begin

select ((select t1.c_005 from c_t_001 t1 where t1.c_023 = param1) -

(select sum(t.c_020) from c_t_002 t where t.c_026 = param2))

into param3

from dual;

end check_detail;

public static void main(string args) ");       

proc.setstring(1, accountno);//傳遞引數1

proc.setstring(2, grantno);//傳遞引數2

proc.registeroutparameter(3, types.varchar);

proc.execute();

string testprint = proc.getstring(3); //獲取返回值

………………

}

java連線Oracle資料庫

class.forname oracle.jdbc.driver.oracledriver newinstance string url jdbc oracle thin clocalhost 1521 orcl string user d8it string password d8it conne...

java連線oracle資料庫

建立連線 connection conn null 建立預編譯物件 preparedstatement st null 建立結果集 resultset rs null 建立驅動初始化字元,如果是mysql則是 com.mysql.jdbc.driver string cl orcl oracle.j...

java鏈結oracle資料庫

color blue i size medium connection conn null class.forname oracle.jdbc.driver.oracledriver 加入oracle的驅動,裡面是驅動的路徑 string url jdbc oracle thin mydbcompu...