V databázi Oracle je ASCIISTR()
Funkce vrací ASCII verzi daného řetězce ve znakové sadě databáze.
Syntaxe
Syntaxe vypadá takto:
ASCIISTR(char)
Kde char
je řetězec nebo výraz, který se překládá na řetězec v jakékoli znakové sadě.
Jiné než ASCII znaky jsou převedeny do tvaru \xxxx
, kde xxxx
představuje jednotku kódu UTF-16.
Příklad
Příklad:
SELECT ASCIISTR('Fish')
FROM DUAL;
Výsledek:
Fish
V tomto případě je výsledek stejný jako vstup, protože vstup používal znaky ASCII.
Zde je další, který používá jiné znaky než ASCII:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Výsledek:
\0E1B\0E25\0E32
Zde získáme každý ze tří znaků vrácený v jejich ekvivalentech ASCII.
V tomto případě vstup (ปลา
) je thajské slovo pro „rybu“. To lze vyslovit jako „Plā“.
Co se stane, když projdeme Plā
do ASCIISTR()
funkce:
SELECT ASCIISTR('Plā')
FROM DUAL;
Výsledek:
Pl\0101
V tomto případě jsou první dva znaky, které jsme předali, znaky ASCII, ale třetí znak není ASCII. Funkce tedy vrátí první dva znaky beze změny a třetí převedený na ASCII.
Zde je další, který splňuje požadavky น้ำ
, což je thajské slovo pro „vodu“:
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Výsledek:
\0E19\0E49\0E33
Nulové hodnoty
Pokud je argument null
, výsledkem je null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Výsledek:
null
Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo, kdykoli se v důsledku příkazu SQL SELECT
objeví hodnota null prohlášení.
Můžete však použít SET NULL
určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null
by měl být vrácen.
Neplatný počet argumentů
Volání ASCIISTR()
bez jakýchkoli argumentů vede k chybě:
SELECT ASCIISTR()
FROM DUAL;
Výsledek:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"