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 sergo@bacup.ru 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($stmt, OCI_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($conn, OCI_D_LOB);
OCIBindByName($stmt, ":mezo2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_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
// webmaster@remoterealty.com 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", $cimid, 10 );
OCIBindByName ( $sth, ":hibakod", $hibakod, 10 );
OCIExecute ( $sth );
?>
Table of Contents
- oci_bind_array_by_name — Binds PHP array to Oracle PL/SQL array by name
- oci_bind_by_name — Binds the PHP variable to the Oracle placeholder
- oci_cancel — Cancels reading from cursor
- oci_close — Closes Oracle connection
- OCI-Collection->append — Appends element to the collection
- OCI-Collection->assign — Assigns a value to the collection from another existing collection
- OCI-Collection->assignElem — Assigns a value to the element of the collection
- OCI-Collection->free — Frees the resources associated with the collection object
- OCI-Collection->getElem — Returns value of the element
- OCI-Collection->max — Returns the maximum number of elements in the collection
- OCI-Collection->size — Returns size of the collection
- OCI-Collection->trim — Trims elements from the end of the collection
- oci_commit — Commits outstanding statements
- oci_connect — Establishes a connection to the Oracle server
- oci_define_by_name — Uses a PHP variable for the define-step during a SELECT
- oci_error — Returns the last error found
- oci_execute — Executes a statement
- oci_fetch_all — Fetches all rows of result data into an array
- oci_fetch_array — Returns the next row from the result data as an associative or numeric array, or both
- oci_fetch_assoc — Returns the next row from the result data as an associative array
- oci_fetch_object — Returns the next row from the result data as an object
- oci_fetch_row — Returns the next row from the result data as a numeric array
- oci_fetch — Fetches the next row into result-buffer
- oci_field_is_null — Checks if the field is NULL
- oci_field_name — Returns the name of a field from the statement
- oci_field_precision — Tell the precision of a field
- oci_field_scale — Tell the scale of the field
- oci_field_size — Returns field's size
- oci_field_type_raw — Tell the raw Oracle data type of the field
- oci_field_type — Returns field's data type
- oci_free_statement — Frees all resources associated with statement or cursor
- oci_internal_debug — Enables or disables internal debug output
- OCI-Lob->append — Appends data from the large object to another large object
- OCI-Lob->close — Closes LOB descriptor
- oci_lob_copy — Copies large object
- OCI-Lob->eof — Tests for end-of-file on a large object's descriptor
- OCI-Lob->erase — Erases a specified portion of the internal LOB data
- OCI-Lob->export — Exports LOB's contents to a file
- OCI-Lob->flush — Flushes/writes buffer of the LOB to the server
- OCI-Lob->free — Frees resources associated with the LOB descriptor
- OCI-Lob->getBuffering — Returns current state of buffering for the large object
- OCI-Lob->import — Imports file data to the LOB
- oci_lob_is_equal — Compares two LOB/FILE locators for equality
- OCI-Lob->load — Returns large object's contents
- OCI-Lob->read — Reads part of the large object
- OCI-Lob->rewind — Moves the internal pointer to the beginning of the large object
- OCI-Lob->save — Saves data to the large object
- OCI-Lob->saveFile — Álnév: oci_lob_import
- OCI-Lob->seek — Sets the internal pointer of the large object
- OCI-Lob->setBuffering — Changes current state of buffering for the large object
- OCI-Lob->size — Returns size of large object
- OCI-Lob->tell — Returns current position of internal pointer of large object
- OCI-Lob->truncate — Truncates large object
- OCI-Lob->write — Writes data to the large object
- OCI-Lob->writeTemporary — Writes temporary large object
- OCI-Lob->writeToFile — Álnév: oci_lob_export
- oci_new_collection — Allocates new collection object
- oci_new_connect — Establishes a new connection to the Oracle server
- oci_new_cursor — Allocates and returns a new cursor (statement handle)
- oci_new_descriptor — Initializes a new empty LOB or FILE descriptor
- oci_num_fields — Returns the number of result columns in a statement
- oci_num_rows — Returns number of rows affected during statement execution
- oci_parse — Prepares Oracle statement for execution
- oci_password_change — Changes password of Oracle's user
- oci_pconnect — Connect to an Oracle database using a persistent connection
- oci_result — Returns field's value from the fetched row
- oci_rollback — Rolls back outstanding transaction
- oci_server_version — Returns server version
- oci_set_prefetch — Sets number of rows to be prefetched
- oci_statement_type — Returns the type of an OCI statement
- OCIBindByName — PHP változó kötése egy Oracle értékhez
- OCICancel — Kurzorral olvasás befejezése
- ocicloselob — Álnév:
- OCICollAppend — [Eddig] nem dokumentált
- OCICollAssign — [Eddig] nem dokumentált
- OCICollAssignElem — [Eddig] nem dokumentált
- OCICollGetElem — [Eddig] nem dokumentált
- OCICollMax — [Eddig] nem dokumentált
- OCICollSize — [Eddig] nem dokumentált
- OCICollTrim — [Eddig] nem dokumentált
- OCIColumnIsNULL — NULL értékű mező azonosítása
- OCIColumnName — Oszlop neve egy eredménytáblában
- OCIColumnPrecision — [Eddig] nem dokumentált
- OCIColumnScale — [Eddig] nem dokumentált
- OCIColumnSize — Oszlop mérete egy eredménytáblában
- OCIColumnType — Oszlop adattípusa egy eredménytáblában
- OCIColumnTypeRaw — [Eddig] nem dokumentált
- OCICommit — Függőben lévő tranzakciók végrehajtása
- OCIDefineByName — PHP változó használata a definiálási lépésben egy SELECT számára
- OCIError — A legutóbbi parancs / kapcsolat / általános hiba visszaadása
- OCIExecute — Parancs futtatása
- OCIFetch — A következő eredmény sor lekérdezése
- OCIFetchInto — A következő sor lekérdezése tömbbe
- OCIFetchStatement — Miden eredménysor lekérdezése egy tömbbe
- OCIFreeCollection — [Eddig] nem dokumentált
- OCIFreeCursor — Kurzorhoz rendelt erőforrások felszabadítása
- OCIFreeDesc — Felszabadít egy LOB leírót
- OCIFreeStatement — Parancshoz rendelt erőforrások felszabadítása
- OCIInternalDebug — A belső debug kimenet engedélyezése / letiltása
- OCILoadLob — [Eddig] nem dokumentált
- OCILogOff — Oracle kapcsolat bontása
- OCILogon — Oracle adatbázis kapcsolat létesítése
- OCINewCollection — [Eddig] nem dokumentált
- OCINewCursor — Új kurzor (parancs eredmény kezelő) megnyitása
- OCINewDescriptor — Egy új üres LOB vagy FILE leírót hoz létre
- OCINLogon — Új Oracle adatbázis kapcsolat létrehozása
- OCINumCols — Az eredményoszlopok száma egy eredménytáblában
- OCIParse — SQL lekérdezés feldolgozása, parancs visszaadása
- OCIPLogon — Oracle adatbáziscsatlakozás állandó kapcsolattal
- OCIResult — Mező értékének visszaadása lekérdezett sorból
- OCIRollback — Függőben lévő tranzakciók visszavonása
- OCIRowCount — Az érintett sorok száma
- OCISaveLob — [Eddig] nem dokumentált
- OCISaveLobFile — [Eddig] nem dokumentált
- OCIServerVersion — Szerver verzió információ visszaadása
- OCISetPrefetch — Az előzetesen lehívott sorok számának beállítása
- OCIStatementType — OCI parancs típusát adja vissza
- OCIWriteLobToFile — [Eddig] nem dokumentált
- ociwritetemporarylob — Álnév: