2009-06-09 2 views
0

Я разрабатываю это приложение, где мне нужно вызвать функцию, написанную в PL/SQL, которая возвращает логическое значение. Насколько я понимаю, bool не является типом SQL, но в PL/SQL, так какой будет тип возвращаемого значения для функции?OracleType для функции pl/sql с возвратным значением boolean?

command.Parameters.Add ("P_RETURN", OracleType. ???);

(Для записи: я не имею никакого контроля над PL/конец SQL вещей, так что я не смог переписать функцию)

ответ

4

Вы можете вызвать функцию SYS.diutil.bool_to_int с результатом вызова вашей функции. Например:

SYS.diutil.bool_to_int(your_function(...)) 

Из документации:

bool_to_int: переводит 3-оцененный BOOLEAN К числу ДЛЯ ИСПОЛЬЗОВАНИЯ в посылке логического параметра/Возвращаемые значения МЕЖДУ Pls v1 (клиент) И PLS v2. поскольку SQLNET не имеет BOOLEAN привязки переменной TYPE, мы закодировать булевой ЛОЖЬ = 0, истина = 1, NULL = NULL для передачи по сети AS ЧИСЛА

+0

Я никогда не слышал или не читал об этом пакете раньше ... – Mac

+0

Это для меня тоже. http://www.psoug.org/reference/diutil.html Видимо пакет утилит для DIANA (компилятор PL/SQL). Это официально не документировано, но, похоже, оно стабильно с 7,3,4 до 11 г. –