&reftitle.examples;
Эти примеры выполняются под пользователем HR, который
является образцом из "Human Resources" схемы, поставляемой
вместе с базой данных Oracle. Возможно потребуется разблокировать этот аккаунт
и переустановить для него пароль, чтобы использовать его.
Примеры подключаются к базе данных XE на вашем компьютере.
Вы можете заменить строки с подключением для использования своих баз данных.
Простой запрос
Данный пример показывает запрос и результат. Выражения в OCI8 используют
последовательность из шагов подготовка-выполнение-выборка.
\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
print "
\n";
}
print "\n";
oci_free_statement($stid);
oci_close($conn);
?>
]]>
Вставка с использованием привязанных переменных
Привязывание переменных повышают производительность за счёт повторного
использования контекста запроса и кеширования. Также они повышают
безопасность блокируя некоторые типы SQL-инъекций.
]]>
Привязка в WHERE выражении запроса
Пример единичной привязки скаляра.
\n";
}
// Выведет
// Austin
// Ernst
// Hunold
// Lorentz
// Pataballa
oci_free_statement($stid);
oci_close($conn);
?>
]]>
Вставка данных в поле типа CLOB
Для больших данных используйте длинные двоичные объекты (BLOB) или
длинные символьные объекты (CLOB). Данный пример использует тип данных CLOB.
save("A very long string");
oci_commit($conn);
// Получение CLOB данных
$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';
$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);
print '
';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
print '
'.$row['MYCLOB'].'
';
// В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
unset($row);
}
print '
';
?>
]]>
Использование PL/SQL хранимых процедур
Вы должны привязывать переменную для каждого возвращаемого значения
и опционально для каждого аргумента функции.
]]>
Использование PL/SQL хранимых процедур
При использовании хранимых процедур желательно привязывать переменные
к каждому аргументу.
]]>
Вызов PL/SQL процедур, возвращающих REF CURSOR
Каждое возвращаемое значение из запроса является REF
CURSOR.
\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
echo "
\n";
$rc = $row['MFRC'];
oci_execute($rc); // возвращает значение поля из запроса в виде указателя
while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
echo "