Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Функции CHAR и VARCHAR

Функции CHAR и VARCHARВ функциях CHAR и VARCHAR, преобразующих дату или время в строку, вообще не применяются параметры форматирования. Результирующая строка всегда имеет определенный в системе формат, конфигурируемый на уровне базы данных. Если формат не подходит, приходится создавать отдельную пользовательскую функцию. Любой тип данных может быть преобразован только в совместимый с ним. При этом каждая СУБД имеет свои критерии совместимости; совместимые в одной СУБД типы могут оказаться несовместимыми в другой. В предыдущем примере невозможно было бы преобразовать тип DB2 9.5 DECIMAL в VARCHAR, поскольку в этой СУБД они несовместимы (в результате было бы получено сообщение об ошибке SQL0461 N A value with data type »SYSIBM. DECIMAL» cannot be CAST to type »SYSIBM. VARCHAR»). В то же время эта операция прошла бы успешно в Oracle и Microsoft SQL Server. Преобразования между разными наборами символов

Для этой цели в Microsoft SQL Server используют функции NCHAR и UNICODE. При этом первая из них возвращает символ UNICODE при передаче ей соответствущего целочисленного аргумента. Функция UNICODE возвращает число, соответствующее переданному ей символу. В следующем примере возвращается число набора символов UNICODE, соответствующее скандинавскому символу 0. Функция TRANSLATE…USING преобразует текст из принятого по умолчанию в одной базе данных набора символов в другой. В некотором смысле ее функциональность аналогична функции Oracle CONVERT, за исключением того, что последняя работает только со строками (т. е. с типами NCHAR и NVARCHAR). В следующем примере будет выполнено преобразование трех символов: A с умляутом (существует в немецком и скандинавском языках), 0 (скандинавский алфавит) и обычной буквы A (западноевропейский 8-разрядный стандарт ISO 8859-1) в 7-разрядный стандарт ASCII (для США) Таким образом, буква A с умляутом была преобразована в обычную букву A, поскольку данный символ не существует в 7-значном английском наборе символов ASCII. Если предложений для замены символа не найдено, выводится символ вопросительного знака. Указания для замены символов на другие содержатся в самом наборе символов.