CallableStatement Ungültiger Spaltenindex

Gossi

Bekanntes Mitglied
Hallo,

Habe hier im Forum schon geschaut aber irgendwie keine passende Lösung gefunden.

Mein Problem besteht, wie aus der Überschrift zu erkennen, darin, dass mein CallableStatement net so will wie ich ;)

Hier ersmal nen paar Zeilen vom Compiler (bzw. der Console) und aus dem Quelltext:

Java-Code:
Java:
cs = connection.prepareCall("UPDATE_PARAM");
cs.setString(1, param.getKeyString());
cs.setString(2, param.getValue());
cs.setString(3, "" + param.getSteuerDf().getId());
cs.setInt(4, param.getId());

Das Statement:
SQL:
BEGIN
    wflprod.DS_PKG.SET_param(?, ?, ?, ?);
END;

Und zu guter letzt, die Fehlermerldung:
java.sql.SQLException: Ungültiger Spaltenindex
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5328)
at oracle.jdbc.driver.OracleCallableStatement.setString(OracleCallableStatement.java:4569)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
at de.narz.portalweb.docuflow.repository.JdbcDocuFlowDao.save(JdbcDocuFlowDao.java:297)
at de.narz.portalweb.docuflow.repository.DocuFlowOracleManager.save(DocuFlowOracleManager.java:81)
at de.narz.portalweb.docuflow.ControllerDocuflow.showSteuer(ControllerDocuflow.java:172)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

Danke schonmal im Vorraus, mit freundlichen Grüßen
Gossi
 
S

SlaterB

Gast
hast du je ein funktionierendes Beispiel gesehen, erfolgreich kopiert?

ohne das direkt zu kennen, habe ich mit einfachen Suchbegriffen 'CallableStatement java example'
Java sample code - Callable statement example - Source code examples
gefunden,
dort steht dann z.B.
Java:
CallableStatement cs2 = con.prepareCall("{call ADDITION(?,?,?)}");
was eher zum Parameter setzen a la PreparedStatement passt
 

Gossi

Bekanntes Mitglied
Ich habe das ganze aus einem bereits laufendem Statement kopiert, dort führe ich genau das gleiche aus, mit dem Unterschied, dass es 7, anstelle von 4 Parametern sind und ein OUT Parameter dabei ist, aber ansonsten sind beide Statements genau die selben. Deswegen wundert es mich ja dass es hier nicht funktioniert.

Trotzdem schonmal danke für die Mühe.

PS:
Manchmal sieht man den Wald vor lauter Bäumen nicht -.-

Java:
//So hab ichs geschrieben
cs = connection.prepareCall("UPDATE_PARAM");

//So haette es aussehen muessen
cs = connection.prepareCall(getSqlBefehl("UPDATE_PARAM"));

Sonst weiß Java ja garnicht, das er das ganze aus der .xml-Datei auslesen muss :lol:
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben