|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.3 Оператор конкатенацииОператоры конкатенации (слияния строковых значений) в запросах Oracle SQL, слияние строковых данных разных типов В реальной работе очень часто приходится производить слияние строковых значений. Такая операция называется конкатенацией. В Oracle SQL предусмотрен несколько необычный (по крайней мере, с точки зрения специалистов, работавших с SQL Server) оператор конкатенации — две вертикальные черты (||). Отметим, что в некоторых версиях сервера Oracle, например, предназначенных для работы на мэйнфреймах IBM, используется другой оператор конкатенации. Поэтому на всякий случай в Oracle SQL предусмотрена еще и встроенная функция CONCAT, которая также производит конкатенацию и работает на любых платформах. Пример применения оператора конкатенации может выглядеть так: SELECT first_name || ' ' || last_name FROM hr.employees; В этом примере у нас сливается три значения: имя, пробел (в виде литерала) и фамилия. Оператор конкатенации можно применять как для строковых значений и значений CLOB (больших строковых значений), так и для чисел и дат (эти значения будут автоматически конвертированы в строковые). При слиянии строкового значения со значением типа NULL Oracle вернет строковое значение (в отличие от поведения по умолчанию SQL Server), однако Oracle предупреждает, что такое поведение в будущих версиях Oracle не гарантируется. Поэтому в таких ситуациях рекомендуется использовать функцию NVL, которая преобразует значения типа NULL в строки нулевой длины. При выполнении конкатенации рекомендуется подумать над ограничениями типов данных, которые используются для конкатенации. Oracle использует для результата конкатенации больший тип данных из тех значений, которые используются для конкатенации. Например, при слиянии двух значений с типом данных CHAR (максимальный размер — 2000 символов) вернется CHAR, при слиянии CHAR и VARCHAR2 (максимальный размер — 4000 символов) вернется VARCHAR2, а при слиянии любого типа данных с CLOB вернется CLOB. Пробелы при конкатенации всегда сохраняются.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Получить учебные материалы по этому курсу |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||