Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Oracle (http://www.forosdelweb.com/f100/)
-   -   No reconoce a procedimiento (http://www.forosdelweb.com/f100/no-reconoce-procedimiento-647789/)

jatari 25/11/2008 07:55

No reconoce a procedimiento
 
Que tal amigo/as, no sé cuál es el problema, tengo la función, en la que me conecto a la base de oracle, desde Java, hasta ahí todo bien, pero el rato que llamo a un procedimiento, no lo reconoce. En cambio si reemplazo el nombre por una consulta a una tabla de la base, si me da los valores, quée podría ser??

Por si aca envío la llamada al procedimiento y el error. Graciassssss


logon(Connection connection, String nombreUsuario)throws SQLException{
CallableStatement call=connection.prepareCall("{?= call sp_adminLstUsuarios(?)}");
//call.setInt(1, 0);
call.registerOutParameter(1, Types.INTEGER);

call.setInt(2, 1);


ResultSet resultSet = call.executeQuery();//de aquí me salta a la excepción

...............





Conexion establecida
Error en la conexion a la BD
java.sql.SQLException: ORA-06550: línea 1, columna 13:
PLS-00222: en este ámbito no existe ninguna función cuyo nombre sea 'SP_ADMINLSTUSUARIOS'
ORA-06550: línea 1, columna 7:
PL/SQL: Statement ignored

kikolice 26/11/2008 00:43

Respuesta: No reconoce a procedimiento
 
esta raro, por el ORA-06550 parece un error de ejecucion en la funcion, aunque por el segundo mensaje pareciera que no existe esa funcion para ese usuario, prueba intentando ejecutar la funcion entrando directamente con sql*plus, toad, etc.

jatari 26/11/2008 07:48

Respuesta: No reconoce a procedimiento
 
Que tal, le probé en sqlplus, y dice procedimiento ejecutado correctamente, en sqldeveloper, igual funciona correctamente, le probé con y sin parámetros y funciona, pero el rato que llamo desde java, se conecta a la base pero no reconoce ningún procedimiento, porque le probé con otro y me sale que no existe.

Por si acaso revisé los privilegios,pero con el nombre de usuario si puedo manipular, ejecutar ,etc los procedimientos

Graciasss....qué haréee

jatari 26/11/2008 08:36

Respuesta: No reconoce a procedimiento
 
Que tal, le probé en sqlplus, y dice procedimiento ejecutado correctamente, en sqldeveloper, igual funciona correctamente, le probé con y sin parámetros y funciona, pero el rato que llamo desde java, se conecta a la base pero no reconoce ningún procedimiento, porque le probé con otro y me sale que no existe.

Por si acaso revisé los privilegios,pero con el nombre de usuario si puedo manipular, ejecutar ,etc los procedimientos

Graciasss....qué haréee

MutenRo 26/11/2008 16:26

Respuesta: No reconoce a procedimiento
 
Hola jatari,

los procedimientos no devuelven un valor, eso lo hacen las funciones. Creo que estás llamando al procedimiento como si fuera una función ('?= call sp_adminLstUsuarios(?)').

Te dejo dos sencillos ejemplos que me funcionan, uno para llamar a una función y otro para un procedimiento:

Código:


// LLAMADA A FUNCIÓN
                  CallableStatement cs = conn.prepareCall ("begin ? := fn_prueba(?); end;");
                  cs.registerOutParameter(1,Types.CHAR);
                  cs.setString(2, "aa");
                  cs.executeUpdate();
                  String result = cs.getString(1);
                  System.out.println("Resultado: "+result);

// LLAMADA A PROCEDIMIENTO
                  cs = conn.prepareCall ("begin pr_prueba(?); end;");
                  cs.setInt(1, 7);
                  cs.executeUpdate();
                  System.out.println("Procedimiento ejecutado");

Un saludo.

jatari 27/11/2008 08:17

Respuesta: No reconoce a procedimiento
 
Gracias, voy a revisarle y te aviso...

jatari 27/11/2008 09:12

Respuesta: No reconoce a procedimiento
 
Gracias por la explicación de funciones y procedimientos, tengo más claro ahora...

le probé así,pero no sé si es cuestión del eclipse, o qué mismo.


Pasa de estás líneas:

CallableStatement call=connection.prepareCall("begin sp_adminLstUsuarios(?); end;");


(1) ResultSet resultSet = call.executeQuery();
(2) UsuariosBean usuario = new UsuariosBean ();
//if (resultSet.next()){
//if(resultSet.next())
(3) usuario.setNombre(resultSet.getString("AC02_NOMBRE "));


Pero al llegar a la línea 3 salta a la excepción,si no comento, la parte del next, desde ahí salta también.



Te cuento qué tengo instalado, talvez son versiones o no sé qué mismo.

Eclipse 3.2.0, jdk1.5.0_16,Tomcat 5.5, Oracle 10.2.0.1.0.


Gracias....



Esto es lo que me sale en la excepción:


















/**************/

database,oracle.jdbc.driver.OracleDriver,jdbc:orac le:thin:@localhost:1521:bdoptime,henry,optime2008
2008-11-27 09:59:09,093 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [CONNECTION.1]
2008-11-27 09:59:09,093 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [agregando base: database-oracle.jdbc.driver.OracleDriver]
2008-11-27 09:59:09,093 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [persistencia:true]
2008-11-27 09:59:09,109 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [conexionesMaximas:4]
2008-11-27 09:59:09,109 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [conexionesIniciales:2]
2008-11-27 09:59:09,109 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [base: database-oracle.jdbc.driver.OracleDriver]
2008-11-27 09:59:09,859 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [agregando un pool de database al Map de pools.]
2008-11-27 09:59:09,859 [http-8081-Processor23] INFO net.plus.util.Util -
[INICIO]: null admin.UsuariosForm 2008/11/27 09:59:09

2008-11-27 09:59:10,484 [http-8081-Processor23] INFO net.plus.util.Util - DEBUG: [admin.UsuariosForm - Database - ORA-00900: sentencia SQL no válida
]
2008-11-27 09:59:10,484 [http-8081-Processor23] INFO net.plus.util.Util -
[FIN]: null admin.UsuariosForm 2008/11/27 09:59:10 Procesado en: 625ms

2008-11-27 09:59:10,484 [http-8081-Processor23] ERROR com.sun.faces.lifecycle.InvokeApplicationPhase - Error calling action method of component with id logonForm:_id0
javax.faces.FacesException: Error calling action method of component with id logonForm:_id0
at org.apache.myfaces.application.ActionListenerImpl. processAction(ActionListenerImpl.java:74)
at javax.faces.component.UICommand.broadcast(UIComman d.java:312)
at javax.faces.component.UIViewRoot.broadcastEvents(U IViewRoot.java:267)
at javax.faces.component.UIViewRoot.processApplicatio n(UIViewRoot.java:381)
at com.sun.faces.lifecycle.InvokeApplicationPhase.exe cute(InvokeApplicationPhase.java:75)
at com.sun.faces.lifecycle.LifecycleImpl.phase(Lifecy cleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Life cycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServl et.java:197)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.myfaces.webapp.filter.ExtensionsFilter. doFilter(ExtensionsFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.myfaces.webapp.filter.ExtensionsFilter. doFilter(ExtensionsFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: java.sql.SQLException: com.datactiva.admin.UsuariosForm - Database - ORA-00900: sentencia SQL no válida

at com.sun.faces.el.MethodBindingImpl.invoke(MethodBi ndingImpl.java:130)
at org.apache.myfaces.application.ActionListenerImpl. processAction(ActionListenerImpl.java:63)
... 27 more
Caused by: java.sql.SQLException: admin.UsuariosForm - Database - ORA-00900: sentencia SQL no válida

at com.datactiva.admin.UsuariosForm.logon(UsuariosFor m.java:212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBi ndingImpl.java:126)
... 28 more
2008-11-27 09:59:10,515 [http-8081-Processor23] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/datactiva].[Faces Servlet] - Servlet.service() para servlet Faces Servlet lanzó excepción
java.sql.SQLException: admin.UsuariosForm - Database - ORA-00900: sentencia SQL no válida

at admin.UsuariosForm.logon(UsuariosForm.java:212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBi ndingImpl.java:126)
at org.apache.myfaces.application.ActionListenerImpl. processAction(ActionListenerImpl.java:63)
at javax.faces.component.UICommand.broadcast(UIComman d.java:312)
at javax.faces.component.UIViewRoot.broadcastEvents(U IViewRoot.java:267)
at javax.faces.component.UIViewRoot.processApplicatio n(UIViewRoot.java:381)
at com.sun.faces.lifecycle.InvokeApplicationPhase.exe cute(InvokeApplicationPhase.java:75)
at com.sun.faces.lifecycle.LifecycleImpl.phase(Lifecy cleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(Life cycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServl et.java:197)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.myfaces.webapp.filter.ExtensionsFilter. doFilter(ExtensionsFilter.java:97)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.myfaces.webapp.filter.ExtensionsFilter. doFilter(ExtensionsFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11 ConnectionHandler.processConnection(Http11BaseProt ocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)


La zona horaria es GMT -6. Ahora son las 18:38.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.