Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

No reconoce a procedimiento

Estas en el tema de No reconoce a procedimiento en el foro de Oracle en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/11/2008, 07:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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
  #2 (permalink)  
Antiguo 26/11/2008, 00:43
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 8 meses
Puntos: 7
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.
__________________
Blogzote.com :-) Mi blog
  #3 (permalink)  
Antiguo 26/11/2008, 07:48
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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
  #4 (permalink)  
Antiguo 26/11/2008, 08:36
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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
  #5 (permalink)  
Antiguo 26/11/2008, 16:26
 
Fecha de Ingreso: marzo-2008
Ubicación: Euskadi
Mensajes: 64
Antigüedad: 16 años, 7 meses
Puntos: 0
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.
  #6 (permalink)  
Antiguo 27/11/2008, 08:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
Sonrisa Respuesta: No reconoce a procedimiento

Gracias, voy a revisarle y te aviso...
  #7 (permalink)  
Antiguo 27/11/2008, 09:12
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años
Puntos: 0
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)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:16.