2012-04-25 3 views
1

У меня есть тип записи и процедура (которая принимает в качестве параметра IN таблицу записей), определенную в пакете PL/SQL Как эту процедуру вызывать в Java-коде?Процедура Java PL/SQL с таблицей записей

Лучше ли избегать таких параметров IN? возможно, REF CURSOR?

ответ

2

Обычный пользователь должен использовать временную таблицу.

0 Set Autocommit, если бы Обязательным (Это по умолчанию отключено)

-Заполните временную таблицу ти некоторых значений.

2 Вызовите свою процедуру. Прочитайте значения из временной таблицы. (Нет записей в значениях параметров)

3 совершающие

//A function to put a value in temporary table 
public void addValueToTmp(Connection conn, String value) throws NamingException, SQLException { 
    CallableStatement cs = conn.prepareCall("{call plsql_function_put_value_in_tmp(?)}"); 
    ....... other code ....... 
    ....... other code ....... 
    ....... other code ....... 
} 

//A function to do something whit a data in temporary table 
public void doAllWork(Connection conn) throws NamingException, SQLException { 
    CallableStatement cs = conn.prepareCall("{call plsql_function_do_something_whith_tmp}"); 
    ....... other code ....... 
    ....... other code ....... 
    ....... other code ....... 
} 


public void mainFunction() throws NamingException, SQLException { 
    ....... other code ....... 
    //Get connection 
    Connection conn = anyFunctionToGetConnection(); 
    //Fill temporary table 
    addValueToTmp(conn, value1); 
    addValueToTmp(conn, value2); 
    addValueToTmp(conn, value3); 
    //Do something whith data 
    doAllWork(conn); 
    //Commit 
    conn.commit; 
    ....... other code ....... 
} 
+0

Я получил его ... но вот что займет немного больше времени. Я вернусь после проверки этого – Samson

+0

Теперь мне нужно использовать CLOB и анализировать XML :(что вы думаете об этом? – Samson

Смежные вопросы