powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему здесь ошибка: varchar(max)?
18 сообщений из 18, страница 1 из 1
Почему здесь ошибка: varchar(max)?
    #40003479
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопрос от майкрософт: функция, которая возвращает area code
И утверждается, что такой ответ неверный, потому что
авторExplanation/Reference:
The variable max, in the line DECLARE @areaCode nvarchar(max), is not defined.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create function AreaCode(@phn nvarchar(64))
returns nvarchar(10)
with schemabinding
AS
BEGIN
declare @area nvarchar(max) -- <--------------------------------------!!!!
select top 1 @area=VALUE from STRING_SPLIT(@phn, '-')
return @area
END



Я проверил у себя на SQL 2019, SQL 2012 - ошибки нет, все компилируется и работает.
Что они имели в виду, чего я не понял?
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003499
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
Есть вопрос от майкрософт: функция, которая возвращает area code

Присоединюсь к вашему же вопросу
Ролг Хупин
Что они имели в виду, чего я не понял?
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003556
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
И утверждается, что такой ответ неверный, потому что
А ответ какой?
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003562
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Ролг Хупин
И утверждается, что такой ответ неверный, потому что
А ответ какой?


Да там приведена функция и вопрос:

авторDoes the solution meet the goal?
A. Yes
B. No
Correct Answer: B
Explanation
Explanation/Reference:
The variable max, in the line DECLARE @areaCode nvarchar(max), is not defined.


Ясно, что по их логике, если бы не было "ошибки", то эта функция была бы ответом.

Но для меня так и осталось не ясно, почему такая фигня написана
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003567
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
alexeyvg
пропущено...
А ответ какой?


Да там приведена функция и вопрос:

авторDoes the solution meet the goal?
A. Yes
B. No
Correct Answer: B
Explanation
Explanation/Reference:
The variable max, in the line DECLARE @areaCode nvarchar(max), is not defined.


Ясно, что по их логике, если бы не было "ошибки", то эта функция была бы ответом.

Но меня так и осталось не ясно, почему такая фигня написанаА, вот теперь, когда вы показали вопрос, стало понятно :-)

Ответ, конечно, они сформулировали неудачно, но я бы тоже ответил B, т.к. функция возвращает не nvarchar(max), а nvarchar(10)
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003571
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Ролг Хупин
пропущено...


Да там приведена функция и вопрос:

пропущено...

Ясно, что по их логике, если бы не было "ошибки", то эта функция была бы ответом.

Но меня так и осталось не ясно, почему такая фигня написана
А, вот теперь, когда вы показали вопрос, стало понятно :-)

Ответ, конечно, они сформулировали неудачно, но я бы тоже ответил B, т.к. функция возвращает не nvarchar(max), а nvarchar(10)


Ну, не знаю,
1. "The variable max, in the line DECLARE @areaCode nvarchar(max), is not defined." - хрень полная же написана
2. функция работает, разнобой в объявлении функции и переменной есть, но это по факту чисто синтаксическая формальность для строк длиной 10
и сказать, что из-за этого функция не удовлетворяет нельзя.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003574
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну там еще нездоровый оптимизм по поводу того, что top 1 достанет нужный кусок телефонного номера
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003579
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторDoes the solution meet the goal?

Выглядит как вопрос с сертификационного экзамена. Если это так, то там обычно есть условия перед примером.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003581
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q.100128 ?

Но там нет top 1, что несколько меняет задачу
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003593
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С учётом того, что MicrosoftВыходные строки могут быть расположены в любом порядке. Порядок не обязательно совпадает с порядком подстрок во входной строке. вообще по барабану, есть ли top 1 или нет - результат в общем случае непредсказуем.
А в частном случае - будет показывать последний кусок номера, что тоже слегка не то, что надо.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003615
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza
авторDoes the solution meet the goal?


Выглядит как вопрос с сертификационного экзамена. Если это так, то там обычно есть условия перед примером.

да, с экзамена 70-761
Условий там нет каких-то дополнительных, но как бы ни было такой ответ по поводу функции удивляет.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003618
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
Q.100128 ?

Но там нет top 1, что несколько меняет задачу


там таких вопросов несколько, следующий с топом
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40003656
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонятно, как отвечать на ткие вопросы.
Вот еще из вопросов

"does not allow new values", потом дошло, что там null
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40004131
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
alexeyvgОтвет, конечно, они сформулировали неудачно, но я бы тоже ответил B, т.к. функция возвращает не nvarchar(max), а nvarchar(10)

Ну, не знаю,
1. "The variable max, in the line DECLARE @areaCode nvarchar(max), is not defined." - хрень полная же написанаСогласен, полный бред.
Ролг Хупин
и сказать, что из-за этого функция не удовлетворяет нельзя.
А вот с этим не согласен.
Программистов, которые пишут такой код, пинком под зад, не нужны такие.
Конечно, если это не ошибка, а стиль жизни. Что за лапша будет в коде?

Может, у индусов это стандартный тест для приёма на работу (один атрибут должен иметь разные типы во всех местах, где он упоминается, иначе не возьмут)?, но мне это не нравится.
Ролг Хупин
но это по факту чисто синтаксическая формальность для строк длиной 10
Это могут сказать только писатели ядра сиквела :-)
Я не знаю, это синтаксическая формальность (то есть компилятор всё равно создаст переменную nvarchar(10)), или это указание компилятору использовать для переменной структуры типа "nvarchar(max)" (мне кажется, структуры отличаются).
Семантиченски разницы нет, тут я согласен, но всё таки не "формальность".
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40004171
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы из дампа чтоль вопросы берете? Не советую, они часто искажены и обрезаны. Если сдавать думаете, то лучше купить practice test и на нем потренироваться.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40004183
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
"does not allow new values", потом дошло, что там null

Как тогда расценивать "null values are permitted"?
Если посмотреть текст далее, то думаю, что просто опечатка!
Должно быть "does not allow null values"
Вообще тесты эти конечно жесть!
Сам недавно столкнулся.

P.S. Собственно это то, о чем вы и писали.
Невнимательно прочел ваш текст.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40004304
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza
вы из дампа чтоль вопросы берете? Не советую, они часто искажены и обрезаны. Если сдавать думаете, то лучше купить practice test и на нем потренироваться.


да, была написано дампы, а эти дампы откуда берутся? я думал - это файлы реальных экзаменов.
...
Рейтинг: 0 / 0
Почему здесь ошибка: varchar(max)?
    #40004322
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это понадергано с реальных экзаменов, но не всегда корректно. Часто встречаются откровенная ерунда вроде ответа на совершенно другой вопрос или условие не совпадающее с кодом.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему здесь ошибка: varchar(max)?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]