Пользовательская функция sybase - ошибка «недетерминированная» или «недопустимая встроенная функция» - PullRequest
0 голосов
/ 08 января 2010

При попытке создать пользовательские функции (UDF) в sybase 15+ вы можете получить следующую ошибку: «Недопустимая инструкция встроенной функции в скалярной функции SQL» Это ч / б «недетерминированные» функции, такие как getdate (), rand (), newid (), не разрешены в UDF.

Есть ли способ обойти это ограничение?

Обратите внимание, что я планирую ответить на свой вопрос здесь.

1 Ответ

1 голос
/ 08 января 2010

Решением является создание вида, такого как:

create view vGetDate as select getdate() as gtdt

Затем в UDF выберите из этого представления:

create function udf_getdate
returns datetime
as
declare @gd datetime
select @gd=gtdt from vGetDate
return @gd
go

Теперь вызовите функцию:

select dbo.udf_getdate()
...