пятница, 29 апреля 2011 г.

Неявное преобрзование


ООО, наконец-то я приступаю к написанию последней статьи в разделе типов данных языка PL/SQL. Даже не буду подсчитывать — сколько я уже статей опубликовал, пусть это кто-нибудь другой подсчитает, а я — просто опубликую последнюю — и перейду дальше, к еще более интересным темам из языка PL/SQL — скоро буду изучать управляющие конструкции.

Если вы уже достаточно научились языку PL/SQL — то можете начинать свой бизнес — для этого достаточно снять офис в аренду и потихоньку разрабатывать программное обеспечение (как снять офис рассказано в статьей по ссылке). А перейду к последней статье по типам данных, в ней будет рассказано о неявном преобразовании типов.

В некоторых случаях PL/SQL может автоматически преобразовывать типы данных. Такое преобразование называют неявным, а такие типы данных — совместимыми. Если два типа данных совместимы, там, где по контексту ожидается один тип данных, можно использовать другой тип. Например — можно передать числовой литерал подпрограмме, в которой ожидается строковое значение и эта подпрограмма примет строковое представление числа.

Если вы выбираете значение из столбца одного типа присваивает это значение переменной другого типа, PL/SQL преобразует значение к типу данных переменной. Так делается, например, когда значение столбца типа данных DATE выбирается в переменную типа данных VARCHAR2.

Точно также, если вы присваивает значение переменной одного типа столбцу другого типа, PL/SQL преобразует значение переменной к типу данных выбранного стобца.

Если PL/SQL не может определить, какое неявное преобразование требуется, при компиляции возникает ошибка. В таких случаях следует использовать явное преобразование.

Какой можно сделать вывод из этих строк? Лучше всего использовать явное преобразование типов всегда, когда необходимо преобразовывать типы. И еще — использование явного преобразования облегчит понимание ваших программ. У себя я стараюсь неявное преобразование не использовать, поэтому — и вам того же советую не пользоваться.

В общем — на этом тему типов данных языка PL/SQL я заканчиваю (наконец-то), а то уж слишком я затянул. В следующий раз уже перейду к управляющим конструкциям. До связи.

Комментариев нет:

Отправить комментарий