Adattípusok konverziója

A PL/SQL a skalártípusok családjai között értelmezi a konverziót. A családok között a PL/SQL automatikusan implicit konverziót alkalmaz, amennyiben az lehetséges. Természetesen ekkor a konvertálandó értéknek mindkét típusnál értelmezhetőnek kell lenni. Például a ‘123’ CHAR típusú érték gond nélkül konvertálható a 123 NUMBER típusú értékre.

A 3.3. táblázat a skalár alaptípusok közötti lehetséges implicit konverziókat szemlélteti.

PL/SQL alkalmazások írásánál javallott az explicit konverziós függvények használata. Az implicit konverzió ugyanis esetleges, verziófüggő, a szövegkörnyezet által meghatározott, tehát a kód nehezebben áttekinthető, kevésbé hordozható és karbantartható.

A 3.4. táblázat a leggyakoribb konverziós függvények rövid leírását adja.

3.3. táblázat - Implicit konverziók

 

BIN_DOU

BIN_FLO

BIN_INT

BLOB

CHAR

CLOB

DATE

LONG

NUMB

PLS_INT

RAW

UROWID

VARCHAR2

BIN_DOU

 

X

X

 

X

   

X

X

     

X

BIN_FLO

X

 

X

 

X

   

X

X

     

X

BIN_INT

X

X

   

X

   

X

X

X

   

X

BLOB

                  

X

   

CHAR

X

X

X

   

X

X

X

X

X

X

X

X

CLOB

       

X

             

X

DATE

       

X

   

X

       

X

LONG

X

X

   

X

         

X

 

X

NUMBER

X

X

X

 

X

   

X

 

X

   

X

PLS_INT

X

X

   

X

   

X

X

     

X

RAW

     

X

X

   

X

       

X

UROWID

       

X

             

X

VARCHAR2

X

X

X

 

X

X

X

X

X

X

X

X

 

3.4. táblázat - Konverziós függvények

Függvény

Leírás

Konvertálható

TO_CHAR

A megadott paramétert VARCHAR2 típusúra konvertálja, opcionálisan megadható a formátum.

Numerikus, dátum

TO_DATE

A megadott paramétert DATE típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_TIMESTAMP

A megadott paramétert TIMESTAMP típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_TIMESTAMP_TZ

A megadott paramétert TIMESTAMP WITH TIMEZONE típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_DSINTERVAL

A megadott paramétert INTERVAL DAY TO SECOND típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_YMINTERVAL

A megadott paramétert INTERVAL YEAR TO MONTH típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_NUMBER

A megadott paramétert NUMBER típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres

TO_BINARY_DOUBLE

A megadott paramétert BINARY_DOUBLE típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres, Numerikus

TO_BINARY_FLOAT

A megadott paramétert BINARY_FLOAT típusúra konvertálja, opcionálisan megadható a formátum.

Karakteres, Numerikus

RAWTOHEX

A paraméterként megadott bináris érték hexadecimális reprezentációját adja meg.

Raw

HEXTORAW

A paraméterként megadott hexadecimális reprezentációjú értéket a bináris formájában adja meg.

Karakteres

(hexadecimális reprezentációt kell tartalmaznia).

CHARTOROWID

A karakteres reprezentációjával adott ROWID belső bináris alakját adja meg.

Karakteres (18-karakteres rowid formátumot kell tartalmaznia).

ROWIDTOCHAR

A paraméterként megadott belső bináris reprezentációjú ROWID külső karakteres reprezentációját adja meg.

Rowid