Лучшее решение этой проблемы, которое я нашел, это ответ на тот же вопрос: https://stackoverflow.com/a/8711118/363293 .
Короче говоря: "€foo\xA0".chars.select(&:valid_encoding?).join
Вы можете использовать параметр out или resulset для возврата любого типа данных.
Возвращаемые значения всегда должны быть целыми
CREATE PROCEDURE GetImmediateManager
@employeeID INT,
@managerName VARCHAR OUTPUT
AS
BEGIN
SELECT @managerName = ManagerName
FROM HumanResources.Employee
WHERE EmployeeID = @employeeID
END
Взято из здесь
Для этого вам нужно будет создать сохраненную функцию:
create function dbo.GetLookupValue(@value INT)
returns varchar(100)
as begin
declare @result varchar(100)
select
@result = somefield
from
yourtable
where
ID = @value;
return @result
end
Затем вы можете использовать эту сохраненную функцию следующим образом:
select dbo.GetLookupValue(4)
Marc
Код возврата хранимой процедуры всегда целочисленный, но вы можете иметь параметры OUTPUT
, которые являются любой желаемый тип - см. http://msdn.microsoft.com/en-us/library/aa174792.aspx .