NULL-параметры в скалярных UDF на MSSQL

== сравнивает ссылки на объекты в Java и не является исключением для объектов String.

Для сравнения фактического содержимого объектов (в том числе String) необходимо использовать equals.

Если сравнение двух объектов String с использованием == оказывается true, это связано с тем, что объекты String были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String. Не следует ожидать сравнения одного объекта String, содержащего то же содержимое, что и другой объект String, используя == для оценки как true.

7
задан gbn 17 February 2009 в 11:03
поделиться

2 ответа

Да , функция, которая указывает RETURNS NULL ON NULL INPUT, закоротит, если какой-либо из ее параметров будут NULL.

документация действительно предлагает это, хотя это неясно и, кажется, относится только к функциям CLR. (Я думаю, что это - попытка Microsoft разъяснить, что NULL поведение, указанное в CREATE FUNCTION, переопределит эти OnNullCall атрибут на методе CLR.)

я протестировал это с функциями не-CLR и в SQL2005 и в SQL2008, и он закорачивает точно как ожидалось.

9
ответ дан LukeH 17 February 2009 в 21:03
поделиться

кто-либо знает, как это обрабатывает несколько параметров?

объяснение в Вашей достаточной ссылке, или Вы искали другое взятие?

, Если ПУСТОЙ УКАЗАТЕЛЬ ВОЗВРАТОВ НА ПУСТОМ ВХОДЕ указан в функции CLR, это указывает, что SQL Server может возвратить ПУСТОЙ УКАЗАТЕЛЬ, когда любой из аргументов это получает, является ПУСТЫМ, на самом деле не вызывая тело функции

2
ответ дан Kristen 17 February 2009 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: