integer ocicolumnprecision(resource statement, value column)
Функция ocicolumnprecision возвращает точность заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам.
integer ocicolumnscale(resource statement, value column)
Функция ocicolumnscale возвращает точность заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам. 
integer ocicolumnsize(resource statement, value column)
Функция ocicolumnsize возвращает размер заданного столбца. Столбцы можно задавать по номерам, и в этом случае они нумеруются с единицы. Кроме того, столбцы можно задавать по их именам.
string ocicolumntype(resource statement, value column)
Функция ocicolumntype возвращает тип заданного столбца. Столбцы можно задавать по номерам, и в этом случае их нумерация начинается с единицы. Кроме того, типы столбцов можно задавать по их именам. Имя типа столбца будет одним из следующих: BFILE, BLOB, CHAR, CLOB, DATE, LONG RAW, LONG, NUMBER, RAW, REFCURSOR, ROWID или VARCHAR. В противном случае возвращается код, представляющий тип данных.
integer ocicolumntyperaw(resource statement, value column)
Функция ocicolumtyperaw возвращает внутренний номер, используемый в СУБД Oracle, для обозначения типа заданного столбца. Столбцы можно задавать по номерам, и в этом случае их нумерация начинается с единицы.
boolean ocicommit(resource connection)
Функция ocicommit выполняет все операторы, входящие в данную транзакцию. По умолчанию операторы выполняются сразу же. Если функция ociexecute вызывается с параметром OCI_DEFAULT, эта функциональность отменяется.
boolean ocidefinebyname(resource statement, string column, reference variable, integer type)
Функция ocidefinebyname (листинг 17.35) связывает столбец с переменной PHP. При выполнении оператора значение столбца копируется в переменную. Аргумент statement должен быть целым числом, возвращаемым функцией ociparse. Имя столбца должно быть представлено в верхнем регистре, в противном случае Oracle его не распознает. Однако нераспознанные имена столбцов не приводят к ошибкам. Аргумент type необходим только при обработке абстрактного типа данных, например ROWID. Абстрактный тип данных требует перед вызовом функции ocidefinebyname предварительного вызова функции ocinewdescriptor. Если аргумент type не указывается, переменные устанавливаются в виде строк и завершаются пустыми символами.

| Листинг 17.35. Функция ocidefinebyname_
<?php
// подключиться к базе данных
$Link = ocilogon("scott", "tiger");
// собрать запрос
$Query = "SELECT ENAME, HIREDATE " .
"FROM emp " .
"WHERE JOB='CLERK' "; // проанализировать запрос $Statement = ociparse($Link, $Query); // связать два столбца с переменными 
ocidefinebyname($Statement, "ENAME", $EmployeeName);
ocidefinebyname($Statement, "HIREDATE", $HireDate);
// выполнить запрос
ociexecute($Statement);
// выбрать строки
while(ocifetch($Statement))
{
print("$EmployeeName был принят на работу $HireDate<br>n");
}
// освободить оператор ocifreestatement($Statement); // закрыть соединение ocilogoff($Link);
?>

array ocierror(resource identifier)
Функция ocierror возвращает ассоциативный массив с описанием последней ошибки, сгенерированной СУБД Oracle. Для получения кода ошибки, произошедшей на определенном шаге выполнения запроса, нужно задать необязательный аргумент identifier с ресурсом statement или connection. Если ошибки нет, эта функция возвращает значение FALSE. В противном случае возвращаемый массив содержит два элемента: code и message.
boolean ociexecute(resource statement, integer mode)
Функция ociexecute предназначена для выполнения SQL-оператора. Аргумент mode является необязательным и управляет выполнением оператора как транзакции. По умолчанию задано значение OCI_COMMIT_ON_EXECUTE. Если транзакцию не нужно выполнять сразу же после выполнения оператора, задается значение OCI_DEFAULT. Каждый раз при вызове функции ociexecute PHP устанавливает флаг autocommit. При наличии серии операторов, которые необходимо выполнять сразу же, для каждого из них обязательно указывайте аргумент mode со значением OCI_DEFAULT.
boolean ocifetch(resource statement)
Функция ocifetch (листинг 17.36) подготавливает следующую строку данных к чтению с помощью функции ociresult. Если строк больше не осталось, возвращается значение FALSE.

| Листинг 17.36. Функция ocifetch_
<?php
// подключиться к базе данных $Link = ocilogon("scott", "tiger"); // проверить соединение if($Error = ocierror())
{
die('<p style="color: red">Неуспешное соединение--' . $Error["message"] . "</p>");
}
// создать запрос 
$Query = "SELECT * FROM emp "; // анализ запроса
$Statement = ociparse($Link, $Query);
// выполнение запроса
ociexecute($Statement);
// проверка выполнения запроса
if($Error = ocierror($Statement))
{
die('<p style="color: red"> Неуспешное выполнение--' $Error["message"] .
"</p>");
}
// начало HTML- таблицы print("<table border="1">n");
//сформировать заголовки из информации о столбцах print("<tr>n");
for($i=1; $i <= ocinumcols($Statement);
{
print("<th>" .
ocicolumnname($Statement, $i) . "<br>" . ocicolumntype($Statement, $i) .
"(" . ocicolumnsize($Statement, $i) . ")<br>" . ocicolumnprecision($Statement, $i) . "<br> " . ocicolumnscale($Statement, $i) .
"</th>n");
}
print("</tr>n");
// выбрать каждую строку
while(ocifetch($Statement))
{
print("<tr>n");
//проход по каждому столбцу
for($i=1; $i <= ocinumcols($Statement);
{
//напечатать строку типа "<td>SMITH</td>"
print("<td>");
if(ocicolumnisnull($Statement,
{
print("(null)");
}
else
{
print(ociresult($Statement,
}
print("</td>n");
}
print("</tr>n");
}
// закрыть таблицу
print("</table>n");
// освободить оператор
ocifreestatement($Statement);
// закрыть соединение
ocilogoff($Link);
?>