OracleType для функции pl / sql с логическим возвращаемым значением? - PullRequest
0 голосов
/ 09 июня 2009

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

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

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

Ответы [ 2 ]

4 голосов
/ 09 июня 2009

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

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

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

bool_to_int: переводит 3-значное BOOLEAN в NUMBER ДЛЯ ИСПОЛЬЗОВАНИЯ При отправке БУЛЕВЫХ параметров / ВОЗВРАЩАЕМЫХ ЗНАЧЕНИЙ МЕЖДУ PLS V1 (клиент) И PLS V2. начиная с sqlnet не имеет переменной типа BOOLEAN TYPE, мы кодируем логическое значение AS false = 0, true = 1, NULL = NULL FOR передача по сети КАК НОМЕР

0 голосов
/ 09 июня 2009

Вы должны преобразовать только BOOLEAN тип PL / SQL в поддерживаемый тип SQL. Я знаю, это больно: добро пожаловать в мир Oracle. Вот Стивен Фюрштайн многоразовый способ справиться с этим .

В качестве примечания, BOOLEAN считаются бесполезными в SQL (в любом случае Oracle).

...