Orakel ontleden

Orakel Ontleden



Unicode is een van de meest invloedrijke en krachtige coderingsstandaarden in de ontwikkelingswereld. Unicode vertegenwoordigt tekens uit bijna alle talen door de tekens te coderen in een integercode tussen 0 en 0x10ffff.

Vanwege de veelzijdigheid van databases zult u af en toe merken dat u een string converteert naar zijn Unicode-representatie.







In deze zelfstudie leert u hoe u de decompose()-functie van Oracle-databases gebruikt om een ​​gegeven om te zetten in zijn Unicode-representatie.



Syntaxis van de functie Oracle Decompose

De syntaxis van de functie is zoals hieronder weergegeven:



DECOMPOSE( string [, { 'CANONISCH' | 'COMPATIBILITEIT' } ] )

De functie accepteert twee argumenten:





  1. Draad - dit vertegenwoordigt de tekenreeks die moet worden geconverteerd naar Unicode-samenstelling. De waarde van deze parameter kan CHAR, VARCHAR, NCHAR, NVARCHAR2, CLOB en NCLOB zijn.
  2. CANONISCH – als u de waarde instelt op canoniek, kan de functie een canonieke decompositie uitvoeren die hercompositie naar de originele tekenreeks mogelijk maakt. Indien niet opgegeven, gebruikt de functie deze parameter standaard.
  3. COMPATIBILITEIT – als de waarde is ingesteld op compatibiliteit, voert de functie de decompositie uit in de compatibiliteitsmodus. Deze modus staat geen hercompositie naar de originele string toe. Gebruik deze optie bij het ontleden van katakana-tekens van halve breedte en volledige breedte.

Het is goed om te onthouden dat CLOB- en NCLOB-typen worden ondersteund via expliciete conversie.

Voorbeeld Functiegebruik

De volgende voorbeelden laten zien hoe u de functie decompose() van Oracle-databases gebruikt.



Voorbeeld 1 - Gebruik van basisfuncties

De volgende eenvoudige code laat zien hoe u de functie ontleden kunt gebruiken om een ​​tekenreeks te ontbinden in de Unicode-weergave.

selecteer ontleden ('Hallo') als uitvoer van dual;

Het uitvoeren van de bovenstaande code zou de uitvoertekenreeks moeten retourneren als:

Voorbeeld 2 – De ASCII-code ophalen

Om de Unicode integer-waarden op te halen, kunnen we de resulterende string doorgeven aan de asciistr-functie, zoals weergegeven in het onderstaande voorbeeld:

selecteer asciistr(ontleden('你好')) als uitvoer van dual;

Uitgang:

Voorbeeld 3 – De functie gebruiken met niet-Unicode-tekens

Als we de functie voorzien van niet-Unicode-tekens, retourneert de functie de invoerreeks zonder enige aanpassingen.

Een voorbeelddemonstratie is zoals getoond:

selecteer decompose('l') als output van dual;

Resultaat:

Hetzelfde geval is van toepassing, zelfs bij gebruik van de functie asciistr.

selecteer asciistr(('l')) als uitvoer van dual;

Uitgang:

Voorbeeld 4 - De functie gebruiken met NULL-argument

De functie retourneert een NULL-waarde als de invoerwaarde NULL is.

Voorbeeld:

selecteer (NULL) als uitvoer van dual;

Uitgang:

Voorbeeld 5 – De functie aanroepen met ontbrekende parameters

De tekenreeksparameter in de functie is vereist. Dus als we de tekenreekswaarde niet doorgeven, retourneert de functie een fout zoals weergegeven:

selecteer () als uitvoer van dual;

Resultaat:

SQL-fout: ORA-00938: onvoldoende argumenten voor functie
00938. 00000 -  'niet genoeg argumenten voor functie'

Gevolgtrekking

In deze zelfstudie hebt u geleerd hoe u de functie decompose() van Oracle kunt gebruiken om een ​​tekenreeks om te zetten in zijn Unicode-representatie.