| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > CallableStatement |
| Автор: Bandit 1.3.2009, 13:05 | ||||||
| Доброго времени суток. Есть таблица(БД Oracle 10g Express Edition):
Есть функция:
java.sql.SQLException: Нарушение протокола В чем может быть проблема? Кто-нибудь сталкивался? Или я что-то не так делаю? |
| Автор: _sten_ 1.3.2009, 14:08 |
| Попробуй так: callableStatement = connect.prepareCall("{?=call FUNC_GET_ALL_USERS()}"); если функция в пакете то перед ее именем надо указать имя пакета, то есть: callableStatement = connect.prepareCall("{?=call mypackage.FUNC_GET_ALL_USERS()}"); |
| Автор: Bandit 1.3.2009, 14:36 |
| _sten_, спасибо за внимание к моей проблеме... но у меня функция не в пакте... в пакете я объявил свой новый тип:TYPE ref_cursor IS REF CURSOR; который использую далее... в том числе и в свой функции... но все-равно спасибо просто банально не могу понять что это за ошибка: java.sql.SQLException: Нарушение протокола... и чем она вызвана... :( StackTrace ошибки java.sql.SQLException: Нарушение протокола at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:162) at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:885) at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:133) at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:385) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:1036) at by.bsuir.db.jdbs.JDBCUserDAO.getAllUsers(JDBCUserDAO.java:40) at by.bsuir.jsf.manager.ManagerJsfBean.login(ManagerJsfBean.java:34) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.el.parser.AstValue.invoke(Unknown Source) |
| Автор: _sten_ 1.3.2009, 15:39 |
| ошибка либо сдесь callableStatement = connect.prepareCall("{CALL ? := FUNC_GET_ALL_USERS()}"); либо на стороне оракла кста не {CALL ? := FUNC_GET_ALL_USERS()} а {?=call FUNC_GET_ALL_USERS()} |
| Автор: Bandit 1.3.2009, 15:56 |
| _sten_, кста не {CALL ? := FUNC_GET_ALL_USERS()} а {?=call FUNC_GET_ALL_USERS()} http://www.enterprisedt.com/publications/oracle/result_set.html ... делаю все в соответствии только не передаю параметр в функцию. |
| Автор: _sten_ 1.3.2009, 16:53 | ||
вот всегда делал так:
проверил работает |
| Автор: Bandit 1.3.2009, 17:26 | ||
взял твой код... та же проблема... без изменений...
_sten_, спасибо огромное в любом случае... если есть идеи в чем может быть проблема, то готов выслушать |
| Автор: _sten_ 1.3.2009, 23:37 |
| может хранимка либо пакет не откомпилен? |
| Автор: mbasil 4.3.2009, 12:05 | ||
Попробуйте так:
|