Переменные
В модуле Oraperl.pm есть шесть специальных переменных:
$ora_cache
$ora_long
$ora_trunc
$ora_errno
$ora_errstr
$ora_verno
Эти переменные
используются для определения поведения Oraperl в определенных условиях.
$ora_cache
Эта переменная определяет размер буфера для функции
&ora_open() и SELECT-выражения, если точный размер буфера не указан.
Как правило устанавливается размер буфера равный пяти. Присваивание этой
переменной значения, равного нулю, устанавливает значение этой переменной
равным первоначальному значению. Присваивание отрицательной величины
приводит к ошибке.
$ora_long
Обычно Oraperl спрашивает базу данных о длине каждого поля и соответствующим
образом распределяет буферное пространство. Это невозможно для полей типа
LONG и LONGRAW. Распределение пространства в предположении максимально
возможной длины (65535 bytes) привело бы к излишним тратам памяти. Поэтому
когда &ora_open() определяет, что поле имеет тип LONG, память распределяется
согласно значению переменной $ora_long. При инициализации она принимает
значение 80 (для совместимости с продуктами Oracle), но в программе ее
можно устанавливать произвольным образом.
$ora_trunc
Так как Oraperl не может точно определять длину значений
типа LONG, возникают ситуации, когда значение $ora_long недостаточно для
хранения полученных данных. В таком случае, если у &ora_fetch есть
необязательный второй параметр, происходит обрезание данных. Если второй
параметр опущен, то вместо него используется значение $ora_trunc.
$ora_errno
Содержит код ошибки произошедшей при последнем вызове
какой-либо функции. Есть два интересных случая, касающихся &ora_fetch().
В первом случае, если произошло обрезание данных типа LONG или LONGRAW и
обрезание было разрешено, тогда выполнение этой функции полностью успешно,
но $ora_errno принимает значение 1406, для индикации того, что произошло
обрезание. Во втором случае, если &ora_fetch() возвратила false, то
$ora_errno принимает значение 0 в случае конца данных или код ошибки,
если действительно произошла ошибка.
$ora_errstr
Содержит сообщение об ошибке, соответствующее значению
$ora_errno.
$ora_verno
Содержит версию Oraperl в формате v.ppp, где v -
основной номер версии, а ppp - patchlevel.