Этот - stumper. Вы находитесь в праве среды Active Directory? Просто проверка:)
Во всяком случае, вместо того, чтобы связать с sid. Значение,
string str = "LDAP://";
я попытался бы преобразовать массив байтов SID в Строка Октета и связал бы с этим вместо этого.
существует сладкий пример здесь на странице 78. Это получит Вас ближе. Честно говоря, я не попытался связать с SID прежде. Но у меня была привязка успеха с GUID пользователя, хотя :)
Удача и сообщила мне, как это идет.
Вы можете создать функцию-оболочку следующим образом:
function get_something(name in varchar2,
ignore_notfound in varchar2) return varchar2
is
begin
return get_something (name, (upper(ignore_notfound) = 'TRUE') );
end;
затем вызовите:
select get_something('NAME', 'TRUE') from dual;
Вам решать, какие допустимые значения ignore_notfound будут в вашей версии, я предположил, что «ИСТИНА» означает ИСТИНА, а все остальное - ЛОЖЬ.
Из документации :
Вы не можете вставить значения
TRUE
иFALSE
в столбец базы данных. Вы не можете выбрать или получить значения столбца вBOOLEAN
переменную. Функции, вызываемые из запросаSQL
, не могут принимать никаких параметровBOOLEAN
. Также нет встроенных функцийSQL
, таких какTO_CHAR
; для представления значенийBOOLEAN
на выходе необходимо использовать конструкцииIF-THEN
илиCASE
для преобразования значенийBOOLEAN
в какой-либо другой тип, например как0
или1
,'Y'
или'N'
,'true'
или«ложь»
и так далее.
Тип данных BOOLEAN - это данные PL / SQL. тип. Oracle не предоставляет эквивалентный тип данных SQL (...) вы можете создать функцию-оболочку, которая отображает Тип SQL к типу BOOLEAN.
Проверьте это: http://forums.datadirect.com/ddforums/thread.jspa?threadID=1771&tstart=0&messageID=5284
Как насчет использования выражения, которое принимает значение ИСТИНА (или ЛОЖЬ)?
select get_something('NAME', 1 = 1) from dual
PL / SQL жалуется, что TRUE не является допустимым идентификатором или переменной. Задайте локальную переменную, установите для нее значение TRUE и передайте ее в функцию get_something.