Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Aufrufen der gespeicherten PLSQL-Prozedur vom Grails-Dienst

sql.call Ergebnisse zu GroovyResultSet . Sie sollten in der Lage sein, eine eachRow auszuführen auf der Ergebnismenge und schieben Sie es in die Liste.

def listPeople(){
    Sql sql = new groovy.sql.Sql(dataSource)
    def resultList = []

    sql.call("BEGIN mypackage.p_get_people(?); END;",
            [Sql.resultSet(OracleTypes.CURSOR)]) {cursorResults -> 
            cursorResults.eachRow{result ->
                resultList << result
            }
    }
    return resultList
}

BEARBEITEN:

Alternativ mit sql.eachRow

    sql.eachRow("BEGIN mypackage.p_get_people(?); END;",
            [Sql.resultSet(OracleTypes.CURSOR)]) {row -> 
                resultList << row
    }