loading..
Русский    English
06:07
листать

Преобразование типов и оператор CAST стр. 3

Есть одна особенность использования оператора CAST в SQL Server, связанная с преобразованием числа к его строковому представлению. Что произойдет, если число символов в числе превышает размер строки? Например,

Консоль
Выполнить
  1. SELECT CAST(1234.6 AS VARCHAR(5))

Следует ожидать, что мы получим сообщение об ошибке. Правильно, вот это сообщение:

Arithmetic overflow error converting numeric to data type varchar.

(«Ошибка арифметического переполнения при преобразовании числа к типу данных VARCHAR».)

Естественно, что мы будем ожидать того же сообщения и при выполнении следующего оператора:

Консоль
Выполнить
  1. SELECT CAST(123456 AS VARCHAR(5))

Но нет. В результате мы получим символ «*» вместо сообщения об ошибке. Мы не беремся судить, с чем это связано, однако, однажды мы столкнулись с проблемой диагностики ошибки в коде, в котором впоследствии выполнялось обратное преобразование к числовому типу.

В нашем простейшем примере это будет выглядеть так:

Консоль
Выполнить
  1. SELECT CAST(CAST(123456 AS VARCHAR(5)) AS INT)

Вот тут-то мы и получаем ошибку:

Syntax error converting the varchar value '*' to a column of data type int.

(«Ошибка синтаксиса при преобразовании значения «*» к типу данных INT».)

Примечание:

Функция Transact-SQL CONVERT ведет себя аналогичным образом.

Страницы: 1 2 3
  • Мрт в москве
    Поставка технических газов. Форум о позвоночнике.
    ckbran.ru
  • Стеллажи книжные
    Адреса точек розничных продаж. Электронный адрес для заказа товара.
    dom98.ru
  • Шлагбаумы в уфе
    Услуги по созданию сайтов, онлайн-конструктор Новости города
    clevergates.ru
Тэги:
ALL AVG battles CASE CAST CHAR CHARINDEX classes COALESCE Convert COUNT CTE DATEDIFF DATEPART DATETIME DELETE DISTINCT EXCEPT EXISTS EXTRACT FROM FULL JOIN GROUP BY Guadalcanal HAVING IN INNER JOIN insert INTERSECT ISNULL laptop LEFT LEFT OUTER JOIN LEN maker MAX MIN MySQL NOT IN NULL ORDER BY Outcome outcomes OVER PARTITION BY pc PIVOT PostgreSQL printer product Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.
Rambler's Top100