es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Parámetros de ejecución de Groovy SQL no están siendo reemplazados.

Este problema me está frustrando tanto que finalmente he creado una cuenta en Stackoverflow: esta es mi primera pregunta aquí, así que por favor sean comprensivos.

Tengo un script SQL como este:

select * from d_table 
where id = :line;

Me gustaría ejecutar esa consulta desde un script Groovy. Hasta ahora, he escrito esto:

static void main(String[] args) {
    String dbURL = 'some.db:Port:serviceName'
    String dbUser = 'dbUser'
    String dbPw = 'aReallyStrongPassword'

    // Conectarse a una instancia y base de datos de SQL
    def sql = Sql.newInstance(dbURL, dbUser, dbPw, 'oracle.jdbc.OracleDriver')

    // Leer el archivo de entrada desde el directorio local
    new File("inputfile.csv").eachLine { inputLine ->
        // Bucle para recorrer el archivo de entrada
        try {
            // Leer el script SQL desde el directorio local
            String sqlString = new File("script.sql").getText("UTF-8")
            // Ejecutar el script SQL, reemplazando :line con el ID de entrada
            resp = sql.execute sqlString, line: inputLine

        } catch(Exception e) {
            println(e)
        }
    }

    // Cerrar la sesión de SQL
    sql.close()
}

Pero siempre obtengo un error como este:

AVISO: No se pudo ejecutar: select * from d_table 
where id = :line; porque: ORA-00933: comando SQL no terminado correctamente

Tengo la sensación de que la consulta no está construida correctamente, pero ¿cuál es el problema? Estoy usando Groovy 3.0.4.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando ejecutar una consulta SQL desde un script de Groovy. Parece que tienes el código correcto para conectarte a la base de datos y leer la consulta SQL de un directorio local. Sin embargo, parece que la consulta no se está construyendo correctamente, ya que estás recibiendo un mensaje de error ORA-00933: comando SQL no finalizado correctamente.

    Es difícil determinar el problema exacto sin más información. Puede ser útil revisar la sintaxis de la consulta, así como los tipos de datos de los parámetros que se están pasando. Además, puede ser útil revisar la documentación de la base de datos que estás utilizando para asegurarte de que la consulta se está construyendo correctamente.

Comments are closed.