Oracle: custom datatypes
Descarrega't del moodle el PDF amb l'exercici dels nombres complexes.
Referències:
- Data type definition i objectes (hi ha l'exemple dels complexes)
- Create type (mirar exemples del final):
- Oracle i PHP:
Creant una taula amb objectes
Suposem que tenim creat el type Complex. Podem crear una taula amb:
CREATE_ TABLE_ numeros ( idnum int primary key, numero Complex );
NOTA: no cal posar els underscores o "_", és perquè la wiki donava error.
Insercions
INSERT_ INTO numeros VALUES(1,Complex(4,22)); INSERT_ INTO numeros VALUES(2,Complex(2.11,1.2));
Com podeu veure poden ser nombres sencers o reals (flotants). ... afegiu mes nombres ...
Querys
Per fer querys amb objectes:
- S'ha de posar parèntesis en el camp que és objecte i accedir a l'atribut en questió.
- El "SELECT_ *" no funcionarà en PHP o altres llenguatges ja que no poden visualitzar tipus de dades objecte. Cal que accedirm a l'atribut. Per exemple:
Si esteu en SQLPLUS podeu fer:
SELECT_ * FROM numeros;
Però si estem en PHP caldrà fer sentències on explicitem l'atribut concret de l'objecte:
SELECT_ idnum, (numero).rpart FROM numeros;
Visualitzem part real i imaginària:
SELECT_ (numero).rpart, (numero).ipart FROM numeros;
Sumem el mateix numero (multipliquem per 2!) i mostrem part real:
SELECT_ (numero).plus(numero).rpart FROM numeros;
Sumem totes les parts reals dels nombres de la taula:
SELECT_ sum((numero).rpart) FROM numeros;
Oracle i PHP
Utiltizeu l'article:
Exercici
Feu una web que mostri algunes consultes sobre la taula que hem creat (mostrar part real i imaginària en diferents columnes, suma de part real+imaginària, etc.).
IMPORTANT: recordeu que quan utilitzem objectes, en PHP no funciona el "SELECT_ *".
Us caldrà, per suposat, tenir instal·lar l'Apache (ja ho teniu si utilitzeu el Zend Server).
Feu la mateixa consulta amb 2 possibles versions, utilitzant les instruccions:
- oci_fetch_all
- oci_fetch_row