В Oracle Database, ASCIISTR()
функцията връща ASCII версия на дадения низ в набора от знаци на базата данни.
Синтаксис
Синтаксисът е така:
ASCIISTR(char)
Къде char
е низ или израз, който се разрешава до низ във всеки набор от знаци.
Не-ASCII знаци се преобразуват във формата \xxxx
, където xxxx
представлява UTF-16 кодова единица.
Пример
Ето един пример:
SELECT ASCIISTR('Fish')
FROM DUAL;
Резултат:
Fish
В този случай резултатът е същият като входния, тъй като входът използва ASCII символи.
Ето още един, който използва не-ASCII знаци:
SELECT ASCIISTR('ปลา')
FROM DUAL;
Резултат:
\0E1B\0E25\0E32
Тук получаваме връщането на всеки от трите знака в техните ASCII еквиваленти.
В този случай входът (ปลา
) е тайландската дума за „риба“. Това може да се произнесе като „Plā“.
Ето какво се случва, когато предадем Plā
към ASCIISTR()
функция:
SELECT ASCIISTR('Plā')
FROM DUAL;
Резултат:
Pl\0101
В този случай първите два знака, които сме предали, са ASCII знаци, но третият знак не е ASCII. Следователно, функцията връща първите два знака непроменени, а третият преобразува в ASCII.
Ето още един, който преминава น้ำ
, което е тайландската дума за „вода“:
SELECT ASCIISTR('น้ำ')
FROM DUAL;
Резултат:
\0E19\0E49\0E33
Нулеви стойности
Ако аргументът е null
, резултатът е null
:
SET NULL 'null';
SELECT ASCIISTR(null)
FROM DUAL;
Резултат:
null
По подразбиране SQLcl и SQL*Plus връщат празно пространство, когато се появи нулева стойност в резултат на SQL SELECT
изявление.
Въпреки това, можете да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Невалиден брой аргументи
Извикване на ASCIISTR()
без никакви аргументи води до грешка:
SELECT ASCIISTR()
FROM DUAL;
Резултат:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"