Oracle: custom datatypes

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Descarrega't del moodle el PDF amb l'exercici dels nombres complexes.

Referències:


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