Oracle + PHP
Maciek - 17-05-2006 00:41
Oracle + PHP
Witam...
Chciałbym się dowiedzieć, czy istnieje mozliowość wypisywania, wstawiania, edytowania i usówania danych do VARRAY i tabel zagnieżdzonych. Chcialbym też móc ustanawiać referencje między tabelami.
Chodzi tu oczywiście o bazę obiektową, bo z relacyjnymi tabelami to raczej nie ma problemu jesli chodzi o te sprawy
Byłbym wdzieczny za podpowiedz w tej sprawie. W google znalazłem nietety tylko informacje na temat łaczenia i wykonywania operacji na bazie relacyjnej.
Chciałbym to zrobic na Oracle 9i (bo ten na mojej uczelni jest tak postawiony, ze mozna sie z nim łaczyć z zewnątrz).
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
dap - 18-05-2006 00:16
Maciek wrote: > Witam... > > Chciałbym się dowiedzieć, czy istnieje mozliowość wypisywania, wstawiania, > edytowania i usówania danych do VARRAY i tabel zagnieżdzonych. > Chcialbym też móc ustanawiać referencje między tabelami. > > Chodzi tu oczywiście o bazę obiektową, bo z relacyjnymi tabelami to > raczej nie ma problemu jesli chodzi o te sprawy > > Byłbym wdzieczny za podpowiedz w tej sprawie. > W google znalazłem nietety tylko informacje na temat łaczenia i wykonywania > operacji na bazie relacyjnej. > > Chciałbym to zrobic na Oracle 9i (bo ten na mojej uczelni jest tak postawiony, ze > mozna sie z nim łaczyć z zewnątrz). >
A mozna wiedziec po co Ci te typy? Ja raczej spotkalem sie z ich unikanim, niz uzywaniem.
dap
-- polanski.biz xoops.pl
alienart@op.pl - 18-05-2006 00:16
> A mozna wiedziec po co Ci te typy? Ja raczej spotkalem sie z ich > unikanim, niz uzywaniem. > > dap
Takie są wymogi projektu - bazu musi mieć typy VARRAY i tabele zagnieżdzone. A potem trzeba do tego napisać klienta. Chciałbym to zrobić w php, bo Java + HDeveloper to totalna porażka - mój komp nie wyrabia... dziwnie mi działa JDeveloper. .. no i nie przepada za Javą :]
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 18-05-2006 00:16
alienart@op.pl wrote: > Takie są wymogi projektu - bazu musi mieć typy VARRAY i tabele > zagnieżdzone. A potem trzeba do tego napisać klienta. No to robisz wszystko elegancko w bazie, a potem kliku-kliku w HTML DB / Application Express i gotowe. :->
-- Michał Kuratczyk
dap - 18-05-2006 00:16
alienart@op.pl wrote: >>A mozna wiedziec po co Ci te typy? Ja raczej spotkalem sie z ich >>unikanim, niz uzywaniem. >> >>dap > > > Takie są wymogi projektu - bazu musi mieć typy VARRAY i tabele zagnieżdzone. > A potem trzeba do tego napisać klienta. Chciałbym to zrobić w php, bo > Java + HDeveloper to totalna porażka - mój komp nie wyrabia... dziwnie mi > działa JDeveloper. .. no i nie przepada za Javą :]
Jeszcze jest taki program: SQL Developer http://www.oracle.com/technology/pro...per/index.html
-- polanski.biz xoops.pl
alienart@op.pl - 19-05-2006 00:19
> Jeszcze jest taki program: SQL Developer > http://www.oracle.com/technology/pro...per/index.html
Ale tu chodzo o to, ze to ja mam SAM napisac klienta, a nie skorzystać z gotowego rozwiązania.
A nie potrafię wypisać wartości typu VARRAY, bo polecenia które róbowałem zwracają mi typ VARRAY a nie wartości w nim zawarte.
Przykład:
CREATE OR REPLACE TYPE telefon_vartyp AS VARRAY(5) OF VARCHAR2(20); /
CREATE OR REPLACE TYPE osoba_objtyp AS OBJECT ( id NUMBER, imie VARCHAR2(20), nazwisko VARCHAR2(30), telefon_var telefon_vartyp ) NOT FINAL; /
CREATE OR REPLACE TYPE zawodnik_objtyp UNDER osoba_objtyp ( id_kraj_ref REF kraj_objtyp, id_trener_ref REF trener_objtyp ); /
CREATE TABLE zawodnik_objtab OF zawodnik_objtyp ( id PRIMARY KEY );
Po wykonaniua polecenia "select * from zawodnik_objtab" zwraca mi coś takiego:
1 Janne Ahonen TELEFON_VARTYP('501902384') 000022020813E7EF0595C4A19FE040ADD988C6357A13E7EF05 95BBA19FE040ADD988C6357A 000022020813E7EF0595CFA19FE040ADD988C6357A13E7EF05 95BCA19FE040ADD988C6357A
A ja potrzebuje dostać samo 501902384, bo inaczej w php wyskakuje mi bład związany z nieporawnymi typami danych, bo do skryptu polecenie przekazuje TELEFON_VARTYP('501902384'), zamist samego 501902384.
I tak samo bedzie z tabelami zagniezdzonymi :(
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
alienartWYTNIJTO@op.pl - 21-05-2006 00:23
Nikt mi nie potrafił tu pomóc ale samemu udało mi się znaleźć rozwiązanie. Zatem chciałbym sie podzielić nim ;)
//połaczenie z bazą $db="(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP) (HOST = xxxxxxx.pl) (PORT = 1521)) (CONNECT_DATA = (SID = xxxxxx)))"; $c=OCILogon('LOGIN','HASLO',$db);
//wypisanie danych $s = OCIParse($c, "SELECT z.id, z.imie, z.nazwisko, tel.column_value, k.id AS id_kraj, k.kraj, t.id AS id_trener, t.nazwisko AS nazwisko_trener FROM zawodnik_objtab z, TABLE(z.telefon_var) tel, kraj_objtab k, trener_objtab t WHERE z.id_kraj_ref=ref(k) AND z.id_trener_ref=ref(t)"); OCIExecute($s, OCI_DEFAULT);
while (OCIFetch($s)) { echo " id= " . ociresult($s, "ID") . " imie= " . ociresult($s, "IMIE") . " telefon= " . ociresult($s, "COLUMN_VALUE") . " itd. ;) "; }
//wstawianie danych $s = OCIParse($c, "INSERT INTO zawodnik_objtab VALUES ($id,'$imie','$nazwisko',telefon_vartyp('$telefon' ),(select ref(k) from kraj_objtab k where k.id='$id_kraj'),(select ref(t) from trener_objtab t where t.id='$id_trener'))"); OCIExecute($s, OCI_DEFAULT); OCICommit($c); //zatwierdzenie tranzakcji OCILogoff($c); //wylogowanie
//edycja danych $s = OCIParse($c, "UPDATE zawodnik_objtab SET id=$id, imie='$imie', nazwisko='$nazwisko', telefon_var=telefon_vartyp('$telefon'), id_kraj_ref=(select ref(k) from kraj_objtab k where k.id='$id_kraj'), id_trener_ref=(select ref(t) from trener_objtab t where t.id='$id_trener') WHERE id='$id'"); OCIExecute($s, OCI_DEFAULT); OCICommit($c); OCILogoff($c);
//usuwanie danych $s = OCIParse($c, "DELETE FROM zawodnik_objtab WHERE id='$id'"); OCIExecute($s, OCI_DEFAULT); OCICommit($c); OCILogoff($c);
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
Oracle 19g +Insert +Insert +Insert...
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?=
=?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?=
[oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?=
[oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?=
MSSQL Express czy Oracle Express
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
=?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
zanotowane.pldoc.pisz.plpdf.pisz.plnumervin.keep.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|