Проблема в том, что BOOLEAN в Oracle существует только в области действия PL / SQL и поэтому не будет привязываться к переменной JDBC.
Я взял код вашей функции, сделал тип возврата NUMBER и вернул 0 для false и 1 для true. Тогда я назвал это так:
import groovy.sql.*;
import java.sql.*;
sql = Sql.newInstance("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger", "oracle.jdbc.driver.OracleDriver");
sql.call("{? = call TRUNC_TABLE(?)}", [Sql.NUMERIC, "FOO"]) { result ->
println result;
}
Результатом было 1 для хорошей таблицы и 0 для несуществующей таблицы (или, предположительно, для любой ошибки при выполнении функции).