I came across a problem while using named parameters and Sql.call. I wanted to call a stored function like this:
sql.call("{?1.returnType = call method(?2.valueA, ?2.valueB)}", [Sql.resultSet(OracleTypes.CURSOR)], myDto)
But got following exception:
java.sql.SQLException: Invalid column type
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:7937)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:7517)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8174)
at oracle.jdbc.driver.OracleCallableStatement.setObject(OracleCallableStatement.java:4094)
The same exception is thrown calling the stored function this way:
sql.call("{:returnType = call method($myDto.valueA, $myDto.valueB)}", [returnType: Sql.resultSet(OracleTypes.CURSOR)])
Is this a problem with Oracle or isn't it possible to use named parameters with stored functions?
I am using groovy 1.7.4 (with grails 1.3.4).
Thanks again for your help.
Best regards,
Daniel
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email