JAVA儲存過程(轉)
JAVA儲存過程實際上是一種方法,但是JAVA要求之一就是任何事物都必須屬於某個類(即,必須是static方法).
為了與資料庫進行互動,JAVA方法需要取得某個連線.當方法在資料庫內作為儲存過程執行時,有兩種方式實現此連線.
DriverManager.defaultConnection();
DriverManager.getConnection("jdbc:default:connection");
第一種方法總是返回同一個Connection物件,而二個方法每次都返回新的物件.
為了在資料庫外面測試JAVA儲存過程,需要使用Oracle JDBC在main()方法內取得一個連線.
通過命令列:loadjava可以把JAVA原始碼,類或jar或zip檔案裝入資料庫.如果裝入的是原始碼,在預設的情況下是不會編譯這些原始碼,直到第一次呼叫時才編譯.如果加上 -resolve選項,則立即進行編譯.
loadjava -resolve -user username/password javaFile.java
也可以在除錯成功的JAVA檔案頭部加入:
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "JavaClassTest" AS 如下:
CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED "JavaClassTest" AS
import java.sql.*;
import oracle.jdbc.*;
...
//JAVA類的主體
...
然後在SQL PLUS裡,或TOAD裡直接執行.
為了使用儲存過程,需要建立呼叫規範,把引數和返回型別對映為PL/SQL型別,即釋出儲存過程.
語法如下:
CREATE [OR REPLACE] FUNCTION funciton_name [(parameter_list)]
RETURN SQL_TYEP {AS | IS}
LANGUAGE JAVA
NAME 'class_name.method_name([full_java_type[,...]]) return full_java_type';
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_list)] {AS | IS}
LANGUAGE JAVA
NAME 'class_name.method_name([full_java_type[,...]])';
之後,可以用:
SELECT function_name(parm) FROM DUAL;
的格式呼叫此函式.
在JAVA中,OUT或IN OUT引數必須對應為陣列型別,即一般是適當型別的單元素陣列,如:
Java方法:
--------------------------------------------------------------
public static void myMethod(int GUID,String[] outName){
outName[0] = myMethod(GUID);
}
Oracle儲存過程
--------------------------------------------------------------
CREATE OR REPLACE PROCEDURE JAVA_TEST2(I_GUID IN NUMBER,O_NAME OUT VARCHAR2) AS
LANGUAGE JAVA
NAME 'JavaClassTest.myMethod(int,java.lang.String[])';
--------------------------------------------------------------
SET SERVEROUT ON
DECLARE
OUTVAR VARCHAR2(200);
BEGIN
JAVA_TEST2(3493,OUTVAR);
DBMS_OUTPUT.PUT_LINE(OUTVAR);
END;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-242212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- SQLSERVER儲存過程SQLServer儲存過程
- Oracle儲存過程Oracle儲存過程
- MySQL---------儲存過程MySql儲存過程
- 造數儲存過程儲存過程
- linux呼叫儲存過程Linux儲存過程
- Oracle儲存過程-1Oracle儲存過程
- 儲存過程——遊標儲存過程
- Winform呼叫儲存過程ORM儲存過程
- 儲存過程 傳 datatable儲存過程
- mysql儲存過程整理MySql儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- MySQL之儲存過程MySql儲存過程
- oracle的儲存過程Oracle儲存過程
- MySQL優化---儲存過程和儲存函式-1-轉自部落格園MySql優化儲存過程儲存函式
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- mybatis儲存過程返回listMyBatis儲存過程
- 資料庫儲存過程資料庫儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- jsp中呼叫儲存過程JS儲存過程
- mongo 儲存過程詳解Go儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- SQL server儲存過程函式SQLServer儲存過程函式
- 儲存過程不好在哪裡?儲存過程
- openGauss 支援儲存過程除錯儲存過程除錯
- mySql 儲存過程與函式MySql儲存過程函式