Hoe CONCAT gebruiken in Oracle SQL
Deze tutorial is gebaseerd op voorbeelden, zodat het gemakkelijker te begrijpen zou zijn. Met de functie Concat van Oracle kunnen twee tekenreeksen worden samengevoegd of verenigd en de volgende gegevenstypen kunnen worden gebruikt CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB of NCLOB. De functie heeft twee invoerparameters en retourneert slechts één tekenreeks. Wanneer de aaneenschakelende gegevenstypen verschillend zijn, dan geeft Oracle database het gegevenstype terug dat minder verliezen heeft in de resultaten van de conversie. De syntaxis van Oracle Concat is:
CONCAT(<string_1>, <string_2>)
Het eerste voorbeeld is met de klassieke aaneenschakelfunctie en het voegt twee teksten “Oracle ” (met een spatie aan het eind) en “database” samen. Om te voorkomen dat de twee woorden één woord worden, tenzij dit met opzet is gedaan, gebruiken we een spatie aan het eind van het eerste woord. De SQL-uitvoer toont onder “TEXT” de waarde “Oracle database”.
SELECT CONCAT('Oracle ','database') as text FROM dual;
De tweede mogelijkheid om strings samen te voegen is het gebruik van de concatenation operator (||) die hetzelfde doet als de Oracle Concat functie. De operator wordt vaker gebruikt dan de Concat-functie omdat het eenvoudiger is en de code eenvoudiger blijft. De syntaxis van de Oracle concatenation operator is:
<string_1>'||'<string_2>
Het tweede voorbeeld geeft dezelfde uitvoer “Oracle database” als het vorige voorbeeld en voor de concatenation gebruiken we dezelfde invoerstrings: “Oracle ” (met een spatie op het eind) en “database”. Kijk eens naar de SQL-query hieronder en vergelijk die met het eerste voorbeeld.
SELECT 'Oracle '||'database' as text FROM dual;
Belangrijk om te weten:
Na het zien van deze laatste twee voorbeelden hebt u misschien een idee gekregen om de additie-operator te proberen en deze twee woorden te verenigen zoals in het volgende voorbeeld.
SELECT 'Oracle '+'database' as text FROM dual;
Uit de uitvoer blijkt dat u ze niet kunt aaneenschakelen met de additie-operator en dat de operator alleen wordt gebruikt met getallen, aangezien de foutmelding “ORA-01722: ongeldig getal” luidt.
Nu moeten we om drie strings samen te voegen de Oracle Concat functie twee keer gebruiken, zoals in het volgende voorbeeld. De invoerstrings zijn “Oracle” (met een spatie aan het eind), “database” en “help” (met een spatie aan het begin). Het laatste woord ” help” heeft een spatie aan het begin en dat laat zien dat je spaties kunt toevoegen waar je maar wilt. De spatie voor het derde woord is bijvoorbeeld gedaan en je kunt het ook gewoon aan het eind van de tweede string toevoegen.
SELECT CONCAT(CONCAT('Oracle ','database'),' help') as text FROM dual;
De uitvoer van het laatste Select statement retourneerde één string “Oracle database help” en dat kan vanaf nu worden behandeld als één gegevenstype. Het volgende voorbeeld doet dezelfde aaneenschakeling met de operator Concat en we gebruiken dezelfde drie invoertekenreeksen als hierboven.
SELECT 'Oracle '||'database'||' help' as text FROM dual;
Zoals je in de laatste query ziet, wordt de SQL query eenvoudiger en leesbaarder als je de operator (||) gebruikt. De Oracle concatenation operator wordt daardoor meer gebruikt en je ziet de Concat functie nauwelijks. Het laatste voorbeeld laat zien dat je veel operatoren die je nodig hebt kunt toevoegen in je code en de enige restrictie is dat ze niet aan het begin en het eind van de string kunnen staan. Met andere woorden, je string moet beginnen en eindigen met een datatype.
SELECT 'Oracle '||'database'||' help'||' from'||' a DBA' as text FROM dual;
De uiteindelijke uitvoer werd “Oracle database help from a DBA” en we gebruiken 5 invoerstrings.
Zie ook:
Oracle Select Oracle Substr Oracle Instr Home