Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вызвать хранимую процедуру Oracle, возвращающую Boolean? / 10 сообщений из 10, страница 1 из 1
09.06.2012, 09:49:10
    #37832265
Niky4000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Ошибка у меня вот такая:
"Invalid column type: 16"
Код вот такой:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    public void debug_exec(){
        try{
            Connection connection = ds.getConnection();
            CallableStatement callableStatement = connection.prepareCall("begin ? := test.debug_try_boolean(?); end;");
            callableStatement.registerOutParameter(1, OracleTypes.BOOLEAN);
            callableStatement.setString(2, "Hello");

            OracleCallableStatement ocs = callableStatement.unwrap(oracle.jdbc.OracleCallableStatement.class);
            callableStatement.execute();

            Boolean boolout=ocs.getBoolean(1);
            
            ocs.close();
            callableStatement.close();
            connection.close();
        }
        catch(Exception e){
            errors=e.getMessage();
        }
    }


Функция на Oracle вот такая:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
function debug_try_boolean(some_str in varchar2) return boolean AS
begin
if some_str is not null then
  return true;
else
  return false;
end if;
end debug_try_boolean;


Вот пример: http://docs.oracle.com/cd/E18283_01/appdev.112/e13995/oracle/jdbc/OracleCallableStatement.html
Не пойму что не так.
Что не так-то? Почему ошибка возникает?

Вот StackTrace:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
SEVERE: java.sql.SQLException: Invalid column type: 16
	at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3950)
	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:135)
	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:304)
	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:393)
	at oracle.jdbc.driver.OracleCallableStatementWrapper.registerOutParameter(OracleCallableStatementWrapper.java:1569)
	at com.sun.gjc.spi.base.CallableStatementWrapper.registerOutParameter(CallableStatementWrapper.java:96)
	at com.imc.medfin.server.dao.factory.OracleFactory.OracleCoreFactory.debug_exec(OracleCoreFactory.java:386)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
	at $Proxy240.debug_exec(Unknown Source)
	at com.imc.medfin.server.mediator.servermediator.process.upload.UploadArchivesSessionBean.debugExecSqlProc(UploadArchivesSessionBean.java:141)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
	at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:206)
	at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
	at $Proxy228.debugExecSqlProc(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:144)
	at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:174)
	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:528)
	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:199)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1624)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1486)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:990)
	at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:742)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:539)
	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2324)
	at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
	at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)

SEVERE: 	at oracle.jdbc.driver.OracleStatement.getInternalType(OracleStatement.java:3950)
SEVERE: 	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:135)
SEVERE: 	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:304)
SEVERE: 	at oracle.jdbc.driver.OracleCallableStatement.registerOutParameter(OracleCallableStatement.java:393)
SEVERE: 	at oracle.jdbc.driver.OracleCallableStatementWrapper.registerOutParameter(OracleCallableStatementWrapper.java:1569)
SEVERE: 	at com.sun.gjc.spi.base.CallableStatementWrapper.registerOutParameter(CallableStatementWrapper.java:96)
SEVERE: 	at com.imc.medfin.server.dao.factory.OracleFactory.OracleCoreFactory.debug_exec(OracleCoreFactory.java:386)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
SEVERE: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
SEVERE: 	at java.lang.reflect.Method.invoke(Method.java:601)
SEVERE: 	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
SEVERE: 	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
SEVERE: 	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
SEVERE: 	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
SEVERE: 	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
SEVERE: 	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
SEVERE: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
SEVERE: 	at java.lang.reflect.Method.invoke(Method.java:601)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
SEVERE: 	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
SEVERE: 	at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214)
SEVERE: 	at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
SEVERE: 	at $Proxy240.debug_exec(Unknown Source)
SEVERE: 	at com.imc.medfin.server.mediator.servermediator.process.upload.UploadArchivesSessionBean.debugExecSqlProc(UploadArchivesSessionBean.java:141)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
SEVERE: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
SEVERE: 	at java.lang.reflect.Method.invoke(Method.java:601)
SEVERE: 	at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
SEVERE: 	at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5388)
SEVERE: 	at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
SEVERE: 	at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
SEVERE: 	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162)
SEVERE: 	at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
SEVERE: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
SEVERE: 	at java.lang.reflect.Method.invoke(Method.java:601)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:861)
SEVERE: 	at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:800)
SEVERE: 	at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:370)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5360)
SEVERE: 	at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
SEVERE: 	at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:206)
SEVERE: 	at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
SEVERE: 	at $Proxy228.debugExecSqlProc(Unknown Source)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
SEVERE: 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
SEVERE: 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
SEVERE: 	at java.lang.reflect.Method.invoke(Method.java:601)
SEVERE: 	at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie.dispatchToMethod(ReflectiveTie.java:144)
SEVERE: 	at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:174)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:528)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:199)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1624)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1486)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:990)
SEVERE: 	at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:214)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:742)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:539)
SEVERE: 	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2324)
SEVERE: 	at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
SEVERE: 	at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
...
Рейтинг: 0 / 0
09.06.2012, 09:49:50
    #37832266
Niky4000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Забыл сказать, валится на строчке:
callableStatement.registerOutParameter(1, OracleTypes.BOOLEAN);
...
Рейтинг: 0 / 0
09.06.2012, 09:58:28
    #37832291
ferc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Niky4000,
подозреваю что

Код: java
1.
2.
callableStatement.setString(1, "Hello");
callableStatement.registerOutParameter(2, OracleTypes.BOOLEAN);
...
Рейтинг: 0 / 0
09.06.2012, 10:00:26
    #37832297
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Niky4000,

См. Oracle JDBC FAQ и здесь
...
Рейтинг: 0 / 0
09.06.2012, 10:27:56
    #37832351
Niky4000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
А понятно. Это просто Oracle JDBC драйвер не поддерживает Boolean. Oracle рекомендует сделать обёртку вокруг функций, возвращающих boolean, конвертирующий boolean в тип, поддерживаемый JDBC драйвером.
...
Рейтинг: 0 / 0
09.06.2012, 11:04:55
    #37832389
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
В SQL нет типа boolean
...
Рейтинг: 0 / 0
09.06.2012, 13:35:29
    #37832659
Niky4000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
А в PL/SQL есть. И мне показалось странным, что Oracle JDBC драйвер почему-то не поддерживает его передачу, тем более, что существует константа OracleTypes.BOOLEAN.
...
Рейтинг: 0 / 0
09.06.2012, 14:22:18
    #37832733
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Niky4000А в PL/SQL есть. И мне показалось странным, что Oracle JDBC драйвер почему-то не поддерживает его передачу, тем более, что существует константа OracleTypes.BOOLEAN.
Более того - и не планируют

Do Oracle's JDBC drivers support PL/SQL tables/result sets/records/booleans?
No. It is not feasible for Oracle JDBC drivers to support calling arguments or return values of the PL/SQL types TABLE (now known as indexed-by tables), RESULT SET, RECORD, or BOOLEAN. There are currently no plans to change this. Instead people are encouraged to use RefCursor, Oracle Collections and Structured Object Types...
...
Рейтинг: 0 / 0
09.06.2012, 14:34:15
    #37832752
avp.mk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
GarrickБолее того - и не планируют

Do Oracle's JDBC drivers support PL/SQL tables/result sets/records/booleans?
No. It is not feasible for Oracle JDBC drivers to support calling arguments or return values of the PL/SQL types TABLE (now known as indexed-by tables), RESULT SET, RECORD, or BOOLEAN. There are currently no plans to change this. Instead people are encouraged to use RefCursor, Oracle Collections and Structured Object Types...
Ты говорил уже))
...
Рейтинг: 0 / 0
09.06.2012, 21:08:28
    #37833263
Virtual Student
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как вызвать хранимую процедуру Oracle, возвращающую Boolean?
Niky4000,
Я делал так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            
            conn = ds.getConnection();
            CallableStatement cs = conn.prepareCall("BEGIN SPCALC(?,?,?,?); END;");
            cs.setString(1, a);
            cs.setDate(2, b);
            cs.registerOutParameter(3, OracleTypes.BOOLEAN);
            cs.registerOutParameter(4, OracleTypes.CURSOR);
            cs.execute();
            Boolean isA = (Integer)cs.getObject(3);
            ResultSet rset = (ResultSet)cs.getObject(4);
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как вызвать хранимую процедуру Oracle, возвращающую Boolean? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]