Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > не запускается определенна пользователем функция


Автор: SATYR 25.5.2005, 08:49
Под правами администратора создаю функцию
Код

CREATE FUNCTION dbo.MList (@Text ntext)
 RETURNS @result TABLE (field varchar(256))AS
   BEGIN
    DECLARE @BufText nvarchar(4000),
            @ost nvarchar(4000),
            @startpos int,
            @pos int
    SET @startpos=1
    SET @BufText=''
    WHILE datalength(@Text) >= @startpos
     BEGIN
      SET @startpos=@startpos-datalength(@BufText)/2  
      SET @BufText=SUBSTRING(@Text,@startpos,4000)
      SET @pos=CHARINDEX(@BufText,',')

      WHILE @pos > 0
       BEGIN
        INSERT @result(field) VALUES(LTRIM(RTRIM(LEFT(@BufText,@pos-1))))
        SET @BufText=SUBSTRING(@BufText,@pos+1,LEN(@BufText))
        SET @pos=CHARINDEX(@BufText,',')
       END
      SET @startpos=@startpos+4000
     END
     INSERT @result(field) VALUES(LTRIM(RTRIM(LEFT(@BufText,@pos-1)))) 
     RETURN          
   END



Объект в БД создается.
Пытаюсь ее вызвать под тем же пользователем
Код
Select  dbo.MList ('hghghgh,mmmmmm,kkkkkkk,lllll,ppppp,qqqqqq,343,34343434,wewewe,qweqweqwe')



получаю в итоге
Server: Msg 208, Level 16, State 1, Line 31
Invalid object name 'dbo.MList'.

Во что коза рогом уперлась не понимаю!? smile

Автор: AntonSaburov 25.5.2005, 12:03
Проверь в какой базе дынных ты работаешь при коннекте. Может ты просто не в ту базу заходишь.

Автор: SATYR 26.5.2005, 08:38
Нет коннекчусь я к той БД в кототорой этот обьект создан. Причем в этой БД уже создана другая пользовательская функция с использованием которой нет ни каких проблем.

Автор: AntonSaburov 26.5.2005, 15:04
Ты рефреш делал для списка функций ? Может там ее действительно нет ?

Автор: SATYR 27.5.2005, 08:53
Делал. Есть.

Автор: AntonSaburov 27.5.2005, 10:24
Попробуй ее убить и создать заново. Честно говоря никогда с таким не сталкивался.

Автор: SATYR 27.5.2005, 10:41
Чесно говоря я это уже пробовал не раз.

Это нормально что в RETURNE она ни чего не возвращает ? Просто я ее делал по образу и описанию одного алгоритма на T-SQL.

Автор: SATYR 8.6.2005, 12:27
Как говорится сам шучу сам смеюсь. smile
Я нашол в чем у меня косяк... smile
Ежели кому интересно: определенная мной функция возвращает таблицу и следовательно ее необходимо вызывать в предложение FROM , а не в SELECT, как я это пытался сделать. Вот и все !

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)