|
|
|
вопрос по выполнению хранимой процедуры oracle12c через mybatis
|
|||
|---|---|---|---|
|
#18+
Добрый день, уважаемые форумчане. Подскажите пож-ста, как выполнить хранимую процедуру oracle 12.1.0.2 через mybatis 3.3.1 текст хранимой процедуры - create or replace procedure prc_ora12(p_in number) is v_ret sys_refcursor; begin open v_ret for select * from clients where id_client=p_in; dbms_sql.return_result(v_ret); end; / подключаюсь через ojdc7.jar (12.1.0.2) в xml-файле написал так - <select id="callOra12" statementType="CALLABLE" resultMap="result"> {#{p_out, jdbcType=CURSOR, mode=OUT, javaType=java.sql.ResultSet,resultMap=result} = call prc_ora12(#{p_in,jdbcType=NUMERIC,javaType=java.math.BigDecimal,mode=IN})} </select> <resultMap id="result" type="store.Client"> <result property="id" column="ID_CLIENT"/> <result property="name" column="NAME_CLIENT"/> <result property="dtHired" column="DT_HIRED"/> <result property="dtTz" column="col_tms"/> </resultMap> при выполнении через - System.out.println("cursor from Oracle12"); session.selectList("callOra12", mpCallQuery); Получаю такую ошибку - System.out.println("cursor from Oracle12"); session.selectList("callOra12", mpCallQuery); В то же время такая функция: create or replace function func_cursor(p_in number) return sys_refcursor is v_ret sys_refcursor; begin open v_ret for select * from clients where id_client=p_in; return v_ret; end; отрабатывает без проблем в том же методе. В чистой java эту процедуру вызываю так - OracleDataSource ods = null; String strSql="{ call prc_retcursor }"; int intRes = 0; try { ods=new OracleDataSource(); ods.setUser("hr"); ods.setPassword("hr"); ods.setServerName("хосТ"); ods.setServiceName("mypdb"); ods.setPortNumber(1521); ods.setDriverType("thin"); try (OracleConnection cnn = (OracleConnection) ods.getConnection()) { CallableStatement csW = cnn.prepareCall(strSql); csW.execute(); while (csW.getMoreResults()) { ResultSet rs = csW.getResultSet(); System.out.println("Become ResultSet"); while (rs.next()) { intRes=rs.getInt("F1"); System.out.println(intRes); } } Помогите пожалуйста вызвать процедуру. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2016, 16:30 |
|
||
|
вопрос по выполнению хранимой процедуры oracle12c через mybatis
|
|||
|---|---|---|---|
|
#18+
Мурзик create or replace procedure prc_ora12(p_in number) is v_ret sys_refcursor; В чистой java эту процедуру вызываю так - OracleDataSource ods = null; String strSql="{ call prc_retcursor }"; } проблема,конено, не в этом, но прикольно - процедуру выложили prc_ora12(p_in number) , а вызываете prc_retcursor и без параметра..... PS Где вы работатете, хотя бы город назовите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2016, 17:03 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39359478&tid=2123434]: |
0ms |
get settings: |
11ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 551ms |

| 0 / 0 |
