Forum und email

Oracle 8 függvények

Ezekkel a függvényekkel az Oracle8 és Oracle7 adatbázisokat érheted el, az Oracle8 Call-Interface (OCI8) használatával. Az Oracle8 kliens könyvtárakra szükséged lesz, ha szeretnéd ezt a kiterjesztést használni.

Ez a kiterjesztés rugalmasabb, mint a hagyományos Oracle kiterjesztés. Lehetővé teszi globális és lokális PHP változók kötését Oracle értékekhez, teljes LOB, FILE és ROWID támogatással rendelkezik, és lehetővé teszi a felhasználó által megadott változók használatát.

Mielőtt elkezdenéd használni ezt a kiterjesztést, győződj meg róla, hogy az Oracle környezeti változók helyesen be vannak állítva az Oracle és a webszerver felhasználó számára. Az értékek, amiket esetleg be kell állítanod a kövezkezők:

  • ORACLE_HOME
  • ORACLE_SID
  • LD_PRELOAD
  • LD_LIBRARY_PATH
  • NLS_LANG
  • ORA_NLS33

Miután beállítottad a könyezeti változókat a webszerver felhasználó számára, add hozzá a webszerver felhasználót (nobody, www) az oracle csoporthoz.

Note: Ha a webszerver nem indul el, vagy lefagy induláskor Ellenőrizd, hogy az Apache szervert a pthread könyvtárral fordítottad-e:

# ldd /www/apache/bin/httpd 
    libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
    libm.so.6 => /lib/libm.so.6 (0x4002f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libc.so.6 => /lib/libc.so.6 (0x4007e000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Jó tisztában lenni azzal is, hogy bizonyos rendszereken, mint amilyen például az UnixWare, ezt a függvénykönyvtárat libthread-nek nevezik a máshol hasznélt libpthread helyett. Ez esetben a PHP-t és az Apache-ot is az EXTRA_LIBS=-lthread beállítással kell konfigurálni.
Ha a libpthread nincs bent a listában, újra kell telepítened az Apache szervert:
# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Example#1 OCI tippek

<?php
// A tippeket [email protected] küldte be

// Használd az OCI_DEFAULT opciót a végrehajtásnál,
// ha késleltetni szeternéd a végrehjtást
OCIExecute($stmtOCI_DEFAULT);

// Lekérdezett adatok használatához (fetch után):

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

// INSERT vagy UPDATE parancsokhoz:

$sql "insert into table (mezo1, mezo2) values (mezo1 = 'érték',
 mezo2 = empty_clob()) returning mezo2 into :mezo2"
;
OCIParse($conn$sql);
$clob OCINewDescriptor($connOCI_D_LOB);
OCIBindByName($stmt":mezo2", &$clob, -1OCI_B_CLOB);
OCIExecute($stmtOCI_DEFAULT);
$clob->save("valami szöveg");
OCICommit($conn);

?>

Könnyen elérheted a tárolt eljárásokat, éppen úgy, mint parancssorból.

Example#2 Tárolt eljárások használata

<?php
// [email protected] küldte be a következő kódot:

$sth OCIParse $dbh"begin sp_newaddress( :cimid, '$keresztnev',
 '$csaladinev', '$ceg', '$cim1', '$cim2', '$varos', '$megye',
 '$irszam', '$orszag', :hibakod );end;" 
);

// Ez a parancs meghívja az sp_newaddress nevű tárolt eljárást,
// a :cimid ki és bemeneti változóval és a :hibakod kimeneti
// változóval. Ezután a változó kötéseket kell elvégezni:

   
OCIBindByName $sth":cimid"$cimid10 );
   
OCIBindByName $sth":hibakod"$hibakod10 );
   
OCIExecute $sth );

?>

Table of Contents