Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Создаю функцию - ошибка, помогите (число прочтений - 2584 )
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Создаю функцию - ошибка, помогите
01. Мая 2008 :: 04:15
Печать  
Что я делаю не так ?
CREATE FUNCTION debkred(@CodOper Char(9), @dk bit(1))
RETURNS Int
AS
BEGIN
     declare @temp_ Int
     select @temp_ =
     Case
           -- дебетовые операции
           when @CodOper = '    D6   '                        then  1
           when @CodOper = '    TU   '                    then  1
           when @CodOper = '    IF   '              then  1
           when @CodOper = '    YX   '              then  1
           when @CodOper = '    TV   '                          then  1
           when @CodOper = '    VA   '                          then  1
           when @CodOper = '    JU   '  and @dk = 1        then  1
           -- кредитовые операции
           when @CodOper = '    D7   '                    then  0
           when @CodOper = '    G7   '                          then  0
           when @CodOper = '    ID   '              then  0
           when @CodOper = '    IE   '              then  0
           when @CodOper = '    HI   '                    then  0
           when @CodOper = '    IH   '                    then  0
           when @CodOper = '    JU   '  and @dk = 0        then  0
     Else
           0 -- укажем вместо пустого значения ноль
     end
RETURN @temp_--(возвращаемое_значение)
END

Ошибка: Server: Msg 2716, Level 16, State 1, Procedure debkred, Line 0
Column or parameter #2: Cannot specify a column width on data type bit.
Parameter '@dk' has an invalid data type.


  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #1 - 01. Мая 2008 :: 04:50
Печать  
Цитата:
Cannot specify a column width on data type bit

Вот это как переводится?
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #2 - 01. Мая 2008 :: 05:10
Печать  
c транслейт буквально так
Код
Выбрать все
Не может определить ширину колонки на бите типа данных 



Дело в данных bit, причем @dk = CAST( 0 as bit(1)) или CAST(@dk as int) = 0 не помогают Печаль
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #3 - 01. Мая 2008 :: 05:16
Печать  
ev-kov писал(а) 01. Мая 2008 :: 05:10:
c транслейт буквально так
Код
Выбрать все
Не может определить ширину колонки на бите типа данных 



Дело в данных bit, причем @dk = CAST( 0 as bit(1)) или CAST(@dk as int) = 0 не помогают Печаль



Слава богу bit неявно преобразуется скулем в Int, мне этого достаточно Улыбка
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #4 - 01. Мая 2008 :: 05:30
Печать  
Слушай а когда ты переменную типа int объявляешь почему длину не пишеш а для bit пишешь? Это где ты увидел такое объявление переменных?
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #5 - 01. Мая 2008 :: 05:40
Печать  
Nick писал(а) 01. Мая 2008 :: 05:30:

Это где ты увидел такое объявление переменных?

по аналогии с char(9), не сообразил что обьявлять числовые переменные нельзя с указанием количества разрядов


а ты прав, заменил bit(1) на bit  заработало !
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #6 - 01. Мая 2008 :: 05:42
Печать  
Мдя, трудности перевода....
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #7 - 01. Мая 2008 :: 05:51
Печать  
Nick. А не знаешь в одном батче можно создавать несколько функций ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Создаю функцию - ошибка, помогите
Ответ #8 - 01. Мая 2008 :: 06:06
Печать  
ev-kov писал(а) 01. Мая 2008 :: 05:51:
Nick. А не знаешь в одном батче можно создавать несколько функций ?

Помоему нельзя, разделяй их GO
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать