sql >> データベース >  >> RDS >> Oracle

Grails サービスから PLSQL ストアド プロシージャを呼び出す

    sql.call GroovyResultSet への結果 . eachRow を実行できるはずです 結果セットに追加し、リストにプッシュします。

    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
    }
    

    編集:

    または sql.eachRow を使用

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


    1. OracleのSQL*PlusにおけるMySQLの\Gに相当

    2. MariaDBでのDATE_FORMAT()のしくみ

    3. PostgreSQLで重複する日付をテストする方法

    4. zxJDBCを使用したプロシージャの呼び出しでの引数の数またはタイプが間違っています