So übergeben Sie ein Java -Objekt an Oracle gespeicherte Prozedur mit folgenden DetailsJava

Java-Forum
Anonymous
 So übergeben Sie ein Java -Objekt an Oracle gespeicherte Prozedur mit folgenden Details

Post by Anonymous »

Ich habe meine Oracle -Tabelle mit Struktur als < /p>

desc extraction_log1
Name Null
Type

------------------------------ -------- ------------------------------------------------------------ ---------------------------------------------------------------------------------------------------- -----------------------------
ROW_NUM NOT NULL NUMBER
DATE_TIME TIMESTAMP(8)
USER_NAME VARCHAR2(32)
PLATFORM_NAME VARCHAR2(20)
R_OBJECT_ID VARCHAR2(16)
< /code>

Dann habe ich einen Objekttyp in Oracle als < /p>

erstelltcreate or replace type EXTRACTION_LOG_TYPE as object (

USER_NAME VARCHAR2(32),
R_OBJECT_ID VARCHAR2(16),

);
< /code>

Dann habe ich die Prozedur in einem Paket als < /p>

erstelltcreate or replace package body PAC_BEAN is
--The insert procedure will receive EXTRACTION_LOG_TYPE and put it into table EXTRACTION_LOG1.

procedure PRO_INSERT_LOG(ELT in EXTRACTION_LOG_TYPE) is

begin

insert into EXTRACTION_LOG1 ( R_OBJECT_ID, USER_NAME)
values (ELT.R_OBJECT_ID, ELT.USER_NAME);

commit;

exception

when others then
rollback;

end PRO_INSERT_LOG;
end PAC_BEAN;
< /code>

und komme zu meiner Java -Seite, ich habe eine Bean mit < /p>

deklariertpublic class ExtractionLogType {
//Name declared in Oracle
public static final String ORACLE_OBJECT_NAME = "EXTRACTION_LOG_TYPE";
//The attributes
private String R_OBJECT_ID;
private String USER_NAME;
//setters and getters
public String getR_OBJECT_ID() {
return R_OBJECT_ID;
}
public void setR_OBJECT_ID(String rOBJECTID) {
R_OBJECT_ID = rOBJECTID;
}
public String getUSER_NAME() {
return USER_NAME;
}
public void setUSER_NAME(String uSERNAME) {
USER_NAME = uSERNAME;
}

}
< /code>

In meiner Klasse, die Haupt < /p>

enthält import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBLogger{
String dbUrl;
Connection con;
//constructor for creation of connection object
as and when an object of DBLogger is instantiated
public DBLogger(){
dbUrl = "jdbc:oracle:thin@my url";
try {
//load Oracle Driver class
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.err.println("Oracle driver class not found");
}
try {
//instantiate connection object
con = DriverManager.getConnectio (dbUrl,"userId","pwd");
} catch (SQLException e) {
e.printStackTrace();
System.err.println("Connection object to oracle cant be established");
}
}
public static void main(String args[]){
try{
DBLogger db=new DBLogger();
CallableStatement cs = null;
ExtractionLogType elt=new ExtractionLogType();
elt.setR_OBJECT_ID("79479479A900");
elt.setUSER_NAME("Jeevan");
cs = db.con.prepareCall("{call PAC_BEAN.PRO_INSERT_LOG(?)}");
/*
* *code to insert the above object into our Database
*
*/
cs.execute();
System.out.println("insert procedure executed successfully");
db.con.close();
} //end try
catch (SQLException e) {
e.printStackTrace(); }
catch(Exception e) { e.printStackTrace();
}
}

}
< /code>

Ich kann den Code nicht herausfinden, damit das Objekt in meine Datenbank eingefügt wird.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post