Ayuda
Hola a todos, alguien me puede ayudar para llamar una función de oracle 11g desde java 7 , saludos
- Valerio's blog
- Inicie sesión o regístrese para enviar comentarios
Hola a todos, alguien me puede ayudar para llamar una función de oracle 11g desde java 7 , saludos
Usa
Usa CallableStatement:
Tego este pequeño
Tego este pequeño codigo
//////////////////////////////
y esta es la funcion
//////////////////////////////////////
el error que me sale es
Pusiste dos valores de
Pusiste dos valores de retorno
Por eso dice que esperaba un igual y se encontro con una coma
Tu funcion regresa solamente un valor ( se pueden regresar mas en PL/SQL? creo que no )
btw, utiliza el tag <code> cuando postees codigo
Asi lo hice
ya lo correji y me que do asi
ahora el error es :
Conectado a la Base de datos POS BARARED-Oracle
Exception in thread "main" java.sql.SQLException: ORA-06550: line 1, column 10:
PLS-00653: aggregate/table functions are not allowed in PL/SQL scope
ORA-06550: line 1, column 13:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
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:206)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:191)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:950)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1222)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3488)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:3857)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
at com.conecOracle.OracleFuncion.main(OracleFuncion.java:41)
Al parecer no puedes usar
Al parecer no puedes usar pipelines.
Al parecer tu funcion podria ser reescrita sin eso.
Lo que pasa es que las
Lo que pasa es que las funciones no los hago yo sino que una persona experta en PL SQL
la pregunta es:
¿Qué me recomienda en este caso?
¿Qué cambien el desarrollo de las funciones ?
la verdad yo no se nada de Oracle y PL SQL
Exponer tu funcion en un Stored Procedure o Package
Recuerdo que en Oracle no puedes usar las funciones desde Java, por lo que necesitarías acceder a ella por medio de un Procedimiento Almacenado o un Paquete. Aunque para la versión que manejas no sé si siga aplicando la restricción.
Gracias
Gracias por la información, es que me dijeron que intentara llamar una funcion de Oracle desde java , ya lo hice de la forma correcta pero me sale errores que son de oracle
PLS-00653: aggregate/table functions are not allowed in PL/SQL scope
ORA-06550: line 1, column 13:
PLS-00382: expression is of wrong type
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored