Вызов функции из Groovy Sql - PullRequest
       4

Вызов функции из Groovy Sql

2 голосов
/ 02 февраля 2012

Я пытаюсь вызвать функцию в Oracle, которая усекает имя таблицы, которую я передаю. К сожалению, я получаю следующую ошибку и не знаю, почему.выберите строки из таблицы и распечатайте на консоль.Кроме того, я смог без проблем вызвать функцию dbms_utility.get_time ().

Вот код ошибки

1 Ответ

7 голосов
/ 02 февраля 2012

Проблема в том, что 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 для несуществующей таблицы (или, предположительно, для любой ошибки при выполнении функции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...