Примеры

Пример #1 Выполнение простого запроса

<?php

  $conn 
oci_connect('hr''hr''orcl');
  if (!
$conn) {
    
$e oci_error();
    print 
htmlentities($e['message']);
    exit;
  }

  
$query 'SELECT * FROM DEPARTMENTS';

  
$stid oci_parse($conn$query);
  if (!
$stid) {
    
$e oci_error($conn);
    print 
htmlentities($e['message']);
    exit;
  }

  
$r oci_execute($stidOCI_DEFAULT);
  if (!
$r) {
    
$e oci_error($stid);
    echo 
htmlentities($e['message']);
    exit;
  }

  print 
'<table border="1">';
  while (
$row oci_fetch_array($stidOCI_RETURN_NULLS)) {
    print 
'<tr>';
       foreach (
$row as $item) {
         print 
'<td>'.($item?htmlentities($item):'&nbsp;').'</td>';
       }
       print 
'</tr>';
  }
  print 
'</table>';

  
oci_close($conn);
?>

Пример #2 Запись данных с использованием oci_bind_by_name()

<?php

  
// Создайте таблицу перед выполнением:
  //   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

  
$conn oci_connect('scott''tiger''orcl');

  
$query 'INSERT INTO MYTABLE VALUES(:myid, :mydata)';

  
$stid oci_parse($conn$query);

  
$id 60;
  
$data 'Some data';

  
oci_bind_by_name($stid':myid'$id);
  
oci_bind_by_name($stid':mydata'$data);

  
$r oci_execute($stid);

  if (
$r)
    print 
"One row inserted";

  
oci_close($conn);

?>

Пример #3 Запись данных в CLOB

<?php
// by sergo at bacup dot ru

// Используйте опцию OCI_DEFAULT, чтобы отложить выполнение транзакции
OCIExecute($stmtOCI_DEFAULT);

$result OCIResult($stmt$n);
if (
is_object($result)) $result $result->load();

$sql "insert into table (field1, field2) values (field1 = 'value',
field2 = empty_clob()) returning field2 into :field2"
;
OCIParse($conn$sql);
$clob OCINewDescriptor($connOCI_D_LOB);
OCIBindByName($stmt":field2", &$clob, -1OCI_B_CLOB);
OCIExecute($stmtOCI_DEFAULT);
$clob->save("some text");
OCICommit($conn);

?>

Вы можете использовать хранимые процедуры так же, как это делается из командной строки.

Пример #4 Использование хранимых процедур

<?php
// by webmaster at remoterealty dot com
$sth OCIParse($dbh"begin sp_newaddress( :address_id, '$firstname',
'$lastname', '$company', '$address1', '$address2', '$city', '$state',
'$postalcode', '$country', :error_code );end;"
);

 
OCIBindByName($sth":address_id"$addr_id10);
 
OCIBindByName($sth":error_code"$errorcode10);
 
OCIExecute($sth);

?>

Коментарии

To run a procedure you can use "CALL", e.g.:

    CALL DBMS_MVIEW.REFRESH('SALES_MV');
2015-07-17 11:48:21
http://php5.kiev.ua/manual/ru/oci8.examples.html

    Поддержать сайт на родительском проекте КГБ