Типы данных text, ntext и image нельзя сравнивать или сортировать, кроме случаев использования оператора IS NULL или LIKE - PullRequest
2 голосов
/ 26 сентября 2011

Я создал процедуру (используя SQL Server 2008) для извлечения данных изображения из таблицы image, но эта процедура выдает ошибку

"Типы данных text, ntext и image нельзя сравнивать или сортировать, кроме случаев использования оператора IS NULL или LIKE. "

Моя процедура такова:

Create procedure [dbo].[xp_GetImage]
@companyId  udtId
as  
begin

/*=============================================================================
*   Constants
*============================================================================*/
declare 
        @SUCCESS            smallint,
        @FAILED             smallint,
        @ERROR_SEVERITY     smallint,
        @ERROR_STATE1       smallint,
        @theErrorMsg        nvarchar(4000),
        @theErrorState      int,
        @chartCount         int,
        @provider           varchar(128),
        @projectCount       int

select  
        @SUCCESS    =   0,  
        @FAILED     =   -1, 
        @ERROR_SEVERITY = 11,
        @ERROR_STATE1 = 1

begin try

    -- Get the Image

    select  Logo, LogoName,LogoSize
              from CompanyLogo                  
     where CompanyId = @companyId         
  order by Logo desc

end try


begin catch
    set @theErrorMsg = error_message()
    set @theErrorState = error_state()
    raiserror (@theErrorMsg, @ERROR_SEVERITY, @theErrorState)
    return (@FAILED)
end catch
end 
print 'created the procedure xp_GetImage'
go
---end of the procedure
grant EXECUTE on xp_GetImage to public
go

пожалуйста, помогите мне.

Ответы [ 2 ]

4 голосов
/ 13 июня 2012

Не забывайте о CAST (). Это просто избавило меня от проблем с поиском строки в текстовом поле, а именно

SELECT lutUrl WHERE CAST(Url AS varchar) = 'http://www.google.com.au'

Реклама, которая мне помогла, находится на Mind Chronicles . Автор также обсуждает проблему сортировки.

3 голосов
/ 26 сентября 2011

Не имеет смысла сортировать (упорядочивать) по двоичным данным изображения.Почему бы вам не выполнить сортировку по одному из других столбцов?

Пример

Измените код из этого:

-- Get the Image

  SELECT Logo, LogoName,LogoSize
    FROM CompanyLogo                  
   WHERE CompanyId = @companyId         
ORDER BY Logo desc

К этому:

-- Get the Image

  SELECT Logo, LogoName,LogoSize
    FROM CompanyLogo                  
   WHERE CompanyId = @companyId         
ORDER BY LogoName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...