Unicode är en av de mest inflytelserika och kraftfulla kodningsstandarderna i utvecklingsvärlden. Unicode representerar tecken från nästan alla språk genom att koda tecknen i en heltalskod mellan 0 och 0x10ffff.
På grund av databasernas mångsidighet kommer du då och då att konvertera en sträng till dess Unicode-representation.
I den här handledningen kommer du att lära dig hur du använder Oracle-databasens decompose()-funktion för att konvertera en given till dess Unicode-representation.
Oracle Decompose funktionssyntax
Funktionens syntax är som visas nedan:
DECOMPOSE( sträng [, { 'KANONISK' | 'KOMPATIBILITET' } ] )
Funktionen accepterar två argument:
- Sträng – detta representerar strängen som ska konverteras till Unicode-komposition. Värdet på denna parameter kan vara CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB och NCLOB.
- KANONISK – inställning av värdet till kanonisk gör att funktionen kan utföra en kanonisk nedbrytning som möjliggör omkomposition till den ursprungliga strängen. Om det inte anges kommer funktionen att använda denna parameter som standard.
- KOMPATIBILITET – om värdet är inställt på kompatibilitet kommer funktionen att utföra nedbrytningen i kompatibilitetsläge. Detta läge tillåter inte omkomposition till originalsträngen. Använd det här alternativet när du deponerar halvbredds- och fullbreddskatakana-tecken.
Det är bra att komma ihåg att CLOB- och NCLOB-typerna stöds via explicit konvertering.
Exempel på funktionsanvändning
Följande exempel visar hur du använder Oracle-databasernas decompose() funktion.
Exempel 1 – Grundläggande funktionsanvändning
Följande enkla kod visar hur man använder nedbrytningsfunktionen för att dekomponera en sträng till dess Unicode-representation.
välj decompose('Hej') som utdata från dual;Att köra koden ovan bör returnera utdatasträngen som:
Exempel 2 – Hämta ASCII-koden
För att hämta Unicode-heltalsvärdena kan vi skicka den resulterande strängen till asciistr-funktionen som visas i exemplet nedan:
välj asciistr(decompose('你好')) som utdata från dual;Produktion:
Exempel 3 – Använda funktionen med icke-Unicode-tecken
Om vi tillhandahåller funktionen med icke-Unicode-tecken, kommer funktionen att returnera inmatningssträngen utan några ändringar.
Ett exempel på demonstration är som visas:
välj decompose('l') som utdata från dual;Resultat:
Samma fall gäller även när du använder asciistr-funktionen.
välj asciistr(('l')) som utdata från dual;Produktion:
Exempel 4 – Använda funktionen med NULL-argument
Funktionen returnerar ett NULL-värde om inmatningsvärdet är NULL.
Exempel:
välj (NULL) som utgång från dubbel;Produktion:
Exempel 5 – Anropa funktionen med saknade parametrar
Strängparametern i funktionen krävs. Därför, om vi misslyckas med att skicka strängvärdet, kommer funktionen att returnera ett fel som visas:
välj () som utgång från dubbel;Resultat:
SQL-fel: ORA-00938: inte tillräckligt med argument för funktion00938. 00000 - 'inte tillräckligt med argument för funktion'
Slutsats
I den här handledningen lärde du dig hur du använder Oracles decompose()-funktion för att konvertera en sträng till dess Unicode-representation.