DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Преобразование типов данных

PL/SQL может выполнять преобразования между различными семейст­вами скалярных типов данных. В пределах одного семейства типы дан­ных можно преобразовывать произвольно, но с учетом ограничений, налагаемых на переменные. Так, переменную типа CHAR(IO) нельзя пре­образовать в переменную типа VARCHAR2(1), так как не будет хватать места для хранения ее значения. Ограничения точности и масштаба так­же могут препятствовать преобразованию, например, переменной
NUMBER(3,2) в переменную NUMBER(3) и наоборот. В случае наруше­ния ограничения компилятор PL/SQL не выдаст сообщения об ошибке, однако ошибки могут появиться во время выполнения программы — все
зависит от значений преобразуемых переменных.
Существуют два способа преобразования типов данных: явный и неявный.
Явное преобразование типов данных
Встроенные функции преобразования, доступные в SQL, доступны и в PL/SQL. Краткое описание этих функций приведено в таблице 3.4. При необходимости их можно применять для явного преобразования типов данных, относящихся к различным семействам типов. Более подробную
информацию о функциях преобразования и примеры их использования
можно найти в главе 5.
Таблица 3.4.  Функции преобразования типов данных PL/SQL и SQL
Неявное преобразование типов данных
В PL/SQL осуществляется автоматическое преобразование типов данных разных семейств, когда это возможно. Например, при помощи блока, приведенного ниже, извлекается текущее число зачетов у студента 10002:
Б этой базе данных поле current_credits имеет тип N иМБЕк(З), одна­ко v_CurrentCredits — это переменная типа VARCHAR2(5). PL/SQL авто­матически преобразует числовые данные в строку символов, а затем присваивает ее символьной переменной. PL/SQL может автоматически выполнять преобразование между:
Символьными типами и числовыми типами
Символьными типами и типами даты
Хотя в PL/SQL производится неявное преобразование типов данных, при программировании рекомендуется использовать явные функции пре­образования. В следующем примере это делается при помощи функции TO_CHAR:
Преимущество такого способа заключается в том, что при желании строку символов явного формата можно использовать также в функции TO_CHAR. Это облегчает понимание программы и подчеркивает преоб­разование типов.
Автоматическое преобразование типов может осуществляться также при обработке в PL/SQL различных выражений (см. ниже раздел "Выра­жения и операции"). Для выражений применима та же рекомендация: же­лательно использовать явные функции преобразования типов.
 









jAntivirus