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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java儲存過程Java儲存過程
- java操作儲存過程Java儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- 編寫JAVA儲存過程Java儲存過程
- java中呼叫儲存過程Java儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 儲存過程儲存過程
- 如何在Oracle中使用Java儲存過程(詳解)(轉)OracleJava儲存過程
- MySQL5儲存過程使用(轉)MySql儲存過程
- mysql儲存過程基本函式(轉)MySql儲存過程函式
- 使用ADO呼叫儲存過程 (轉)儲存過程
- (轉)如何oracle除錯儲存過程Oracle除錯儲存過程
- SQL分隔字串的儲存過程 (轉)SQL字串儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- Oracle儲存過程Oracle儲存過程
- Mysql 儲存過程MySql儲存過程
- 使用儲存過程儲存過程
- sybase儲存過程儲存過程
- 管理儲存過程儲存過程
- 呼叫儲存過程儲存過程
- 實戰儲存過程排程過程儲存過程
- 自動生成對錶進行插入和更新的儲存過程的儲存過程 (轉)儲存過程
- 用java呼叫oracle儲存過程總結JavaOracle儲存過程
- Oracle開發人員 JAVA儲存過程OracleJava儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- 使用ADO執行儲存過程 (轉)儲存過程
- 自動編號的儲存過程 (轉)儲存過程
- 使用Command執行儲存過程 (轉)儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- ADO中sqlserver儲存過程使用 (轉)SQLServer儲存過程