Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему здесь ошибка: varchar(max)? / 18 сообщений из 18, страница 1 из 1
28.09.2020, 15:42
    #40003479
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Есть вопрос от майкрософт: функция, которая возвращает 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
28.09.2020, 16:01
    #40003499
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Ролг Хупин
Есть вопрос от майкрософт: функция, которая возвращает area code

Присоединюсь к вашему же вопросу
Ролг Хупин
Что они имели в виду, чего я не понял?
...
Рейтинг: 0 / 0
28.09.2020, 17:04
    #40003556
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Ролг Хупин
И утверждается, что такой ответ неверный, потому что
А ответ какой?
...
Рейтинг: 0 / 0
28.09.2020, 17:12
    #40003562
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
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
28.09.2020, 17:17
    #40003567
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Ролг Хупин
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
28.09.2020, 17:23
    #40003571
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
alexeyvg
Ролг Хупин
пропущено...


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

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

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

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

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


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

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

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


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

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

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


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

"does not allow new values", потом дошло, что там null
...
Рейтинг: 0 / 0
29.09.2020, 19:57
    #40004131
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Ролг Хупин
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
30.09.2020, 05:09
    #40004171
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
вы из дампа чтоль вопросы берете? Не советую, они часто искажены и обрезаны. Если сдавать думаете, то лучше купить practice test и на нем потренироваться.
...
Рейтинг: 0 / 0
30.09.2020, 08:34
    #40004183
SQL2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему здесь ошибка: varchar(max)?
Ролг Хупин
"does not allow new values", потом дошло, что там null

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

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


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


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