Oracle
 sql >> база данни >  >> RDS >> Oracle

NLS_LOWER() Функция в Oracle

В Oracle, NLS_LOWER() функцията връща аргумента си с всички букви с малки букви.

Това е подобно на LOWER() функция, с изключение на това, че приема втори аргумент, който ви позволява да посочите съпоставянето. Съпоставянето обработва специални езикови изисквания за преобразуване на главни и главни букви.

Синтаксис

Синтаксисът е така:

NLS_LOWER(char [, 'nlsparam' ])

Където и двете char и 'nlsparam' може да бъде от всеки от типовете данни CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB или NCLOB .

'nlsparam' аргументът може да има следната форма:

'NLS_SORT = sort'

Където sort е съпоставяне с име.

Ако пропуснете този аргумент, се използва определеното съпоставяне на функцията.

Пример

Ето един прост пример за демонстрация:

SELECT NLS_LOWER('HOMER SYMPTOM') AS Result
FROM DUAL;

Резултат:

          RESULT 
________________ 
homer symptom   

Същото важи, когато аргументът използва смесен случай:

SELECT NLS_LOWER('Homer Symptom') AS Result
FROM DUAL;

Резултат:

          RESULT 
________________ 
homer symptom   

И ако аргументът вече е с малки букви, тогава резултатът е същият като входа:

SELECT NLS_LOWER('homer symptom') AS Result
FROM DUAL;

Резултат:

          RESULT 
________________ 
homer symptom   

Посочете колекция

Ето пример, който демонстрира как определянето на съпоставяне може да промени резултатите:

SELECT 
    NLS_LOWER('BALIQ') AS r1,
    NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI') AS r2
FROM DUAL;

Резултат:

      R1       R2 
________ ________ 
baliq    balıq   

Забележете, че втората колона използва малки букви без точки i символ, който се придържа към азербайджанската писмена система.

Имайте предвид, че NLS_SORT отменя съпоставянето на първия аргумент само в момента на изпълнение. Следователно следният оператор връща съпоставянето на първия аргумент, а не на втория:

SELECT
    COLLATION(NLS_LOWER('BALIQ', 'NLS_SORT = XAZERBAIJANI')) AS Collation
FROM DUAL;

Резултат:

        COLLATION 
_________________ 
USING_NLS_COMP   

Темата за съпоставянето може да бъде доста сложна. Вижте Приложение C в Ръководството за поддръжка на глобализация на базата данни на Oracle за правилата за определяне на съпоставяне и правилата за извличане на съпоставяне за тази функция.

Нулеви стойности

Предаването на null връща null :

SELECT
    NLS_LOWER(null, 'NLS_SORT = XAZERBAIJANI') AS r1,
    NLS_LOWER('BALIQ', null) AS r2,
    NLS_LOWER(null, null) AS r3
FROM DUAL;

Резултат:

     R1      R2      R3 
_______ _______ _______ 
null    null    null   

По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

Неправилен брой аргументи

Извикване на NLS_LOWER() без подаване на аргументи връща грешка:

SELECT NLS_LOWER()
FROM DUAL;

Резултат:

Error starting at line : 1 in command -
SELECT NLS_LOWER()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00938: not enough arguments for function
00938. 00000 -  "not enough arguments for function"
*Cause:    
*Action:

И предаването на твърде много аргументи води до грешка:

SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL;

Резултат:

Error starting at line : 1 in command -
SELECT NLS_LOWER('Homer', 'NLS_SORT = XAZERBAIJANI', 'Symptom')
FROM DUAL
Error at Command Line : 1 Column : 54
Error report -
SQL Error: ORA-00939: too many arguments for function
00939. 00000 -  "too many arguments for function"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да добавите секунда в времевата марка на Oracle

  2. Получаване на ORA-03115:неподдържан мрежов тип данни или грешка при представяне при извличане на масив от varchar от анонимен pl/sql

  3. Как да върнете изходни параметри на Oracle от съхранена процедура в .NET

  4. Поддържани модели на формат за функциите за дата ROUND() и TRUNC() в Oracle

  5. Как да опиша проблема с производителността в релационна база данни?