Vijfhart > Nieuws > Nieuwsbrieven > Nieuwsbrief februari 2009 > Oracle SQL Conversiefuncties
Gerelateerde onderwerpen:
10g | 11g | 8i | 9i | Database | Oracle | SQL

Oracle SQL Conversie functies

We kunnen in Oracle SQL getallen, strings en data omzetten naar elkaar door middel van onderstaande conversie functies.

TO_NUMBER (s[,inleesmasker])
Converteert een string die uit cijfers bestaat, eventueel gecombineerd met een valuta symbool, naar een numerieke waarde.

TO_CHAR (n [,weergave-masker] )
Converteert een numerieke waarde of een datumveld naar een string in een bepaalde opmaak. Indien u bij een numeriek waarde geen masker opgeeft wordt de string even lang als het aantal cijfers.

TO_DATE (s [,inleesmasker] )
Converteert een string die een datum moet voorstellen naar een datumveld. Het inleesmasker verklaart aan Oracle hoe de string is opgebouwd.

Voorbeelden conversie functies

We zullen nu de twee meest gebruikte conversie functies (resp. TO_CHAR en TO_DATE) aan de hand van een aantal voorbeelden verder toelichten.

De systeemdatum wordt momenteel in het standaard datumformaat weergegeven (dwz. DD-MON-YY) in onze output. Dit datumformaat is afhankelijk van instellingen in de database en instellingen in de SQL client, in ons geval dus SQL Developer. Meer hierover vindt u in de cursus Oracle DBA deel I

Wanneer we een datum met een ander formaat willen weergeven in onze output, bijvoorbeeld met de maand voluit geschreven, vier cijfers voor het jaartal en inclusief de volledige tijd, dan kunnen we dit realiseren met behulp van een conversiemasker binnen de TO_CHAR functie.

  SELECT to_char(sysdate, 'fmDD-MONTH-YYYY:HH24:MI:SS') datum
   FROM  dual;
 
  DATUM
  -------------------------
  25-JUNE-2008:13:58:31

Let op dat een string die wij zelf herkennen als een datum, bijvoorbeeld '01-FEB-2009' door Oracle gewoon wordt gezien als string, we kunnen dus niet een datumstring zonder meer via een TO_CHAR van opmaak veranderen.

  SELECT to_char('01-FEB-2009', 'Day month YYYY') datum
   FROM dual;

Oracle foutmelding

Aan de foutmelding is te zien dat Oracle een ander formaat verwacht (een numerieke waarde of een datum). De string moet dus eerst naar een datum worden geconverteerd en daarna kan eventueel het masker worden aangepast.

  SELECT to_char(to_date('01-FEB-2009','DD-MON-YYYY')
                         , 'Day month YYYY') datum
   FROM  dual;
 
  DATUM
  ------------------------
  Sunday    february  2009

De functie TO_DATE wordt dus gebruikt om Oracle te vertellen dat de ingevoerde string een datum is. De TO_CHAR functie wordt vervolgens gebruikt om deze datum in een ander dan het standaard formaat te tonen.

TIP: Meer over Oracle operatoren, functies en maskers en leert u tijdens een SQL cursus.


 
Informatie 
  Contact
  Cursusoverzicht
  Download Cursusoverzicht PDF
  Cursuskalender
  Bel mij!
  Brochure aanvragen
  Weblog Vijfhart
  Stel een vraag
 
 
Vijfhart nieuwsbrieven 
Klik hier voor de laatste nieuwsbrief
 
Cursuscategorieën