Как передать объект Java в хранимую процедуру Oracle со следующими подробностямиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как передать объект Java в хранимую процедуру Oracle со следующими подробностями

Сообщение Anonymous »

У меня есть таблица ORACLE со структурой

Код: Выделить всё

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)
Затем я создал тип объекта в oracle как

Код: Выделить всё

create or replace type EXTRACTION_LOG_TYPE as object    (

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

);
Затем я создал процедуру в пакете как

Код: Выделить всё

create 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;
и перейдя на свою сторону Java, я объявил bean-компонент с помощью

Код: Выделить всё

public 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;
}

}
в моем классе, содержащем main

Код: Выделить всё

               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();
}
}

}
Я не могу понять код, позволяющий вставить объект в мою базу данных.

Может ли кто-нибудь подсказать мне это?

Спасибо.>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»