Разное

Pl sql длина строки: LENGTH ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Содержание

LENGTH ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию LENGTH с синтаксисом и примерами.

Описание

Функция Oracle/PLSQL LENGTH возвращает длину указанной строки.

Синтаксис

Синтаксис функции Oracle/PLSQL LENGTH:

LENGTH( string1 )

Параметры или аргументы

string1 – строка, длину которой возвращает функция. string1 может быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB.

Примечание

  • Функция LENGTH возвращает numeric значение.
  • Если string1 равен NULL, то функция LENGTH вернет NULL.

Применение

Функцию LENGTH можно использовать в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Рассмотрим несколько примеров функции LENGTH и изучим, как использовать функцию LENGTH в Oracle/PLSQL.

SQL> SELECT LENGTH(NULL) FROM DUAL;

—Результат: NULL

SQL> SELECT LENGTH(») FROM DUAL;

—Результат: NULL

SQL> SELECT LENGTH(‘ ‘) FROM DUAL;

—Результат: 1

SQL> SELECT LENGTH(‘1’) FROM DUAL;

—Результат: 1

SQL> SELECT LENGTH(‘Лавка Древностей’) FROM DUAL;

—Результат: 16

SQL> SELECT LENGTH(‘Лавка Древностей ‘) FROM DUAL;

—Результат: 17

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

SQL> SELECT LENGTH(NULL) FROM DUAL;

 

—Результат:   NULL

 

SQL> SELECT LENGTH(») FROM DUAL;

 

—Результат:   NULL

 

SQL> SELECT LENGTH(‘ ‘) FROM DUAL;

 

—Результат:   1

 

SQL> SELECT LENGTH(‘1’) FROM DUAL;

 

—Результат:   1

 

SQL> SELECT LENGTH(‘Лавка Древностей’) FROM DUAL;

 

—Результат:   16

 

SQL> SELECT LENGTH(‘Лавка Древностей ‘) FROM DUAL;

 

—Результат:   17

Рубрика: Символьные / строчные функции Oracle / PLSQL | Permalink

Функция LENGTH — подсчет количества символов

Функция LENGTH используется для подсчета количества символов
в строках.

Вместо LENGTH можно использовать следующие названия:
OCTET_LENGTH,
CHAR_LENGTH,
CHARACTER_LENGTH.

Существует также функция BIT_LENGTH, которая возвращает длину в битах.

Синтаксис

SELECT LENGTH(поле) FROM имя_таблицы WHERE условие

Примеры

Все примеры будут по этой таблице workers, если не сказано иное:

id
айди
name
имя
1Дмитрий
2Кирилл
3Владимир

Пример

В данном примере создается дополнительное поле,
которое содержит длину поля name:

SELECT *, LENGTH(name) as length FROM workers

SQL запрос выберет следующие строки:

id
айди
name
имя
length
длина строки
1Дмитрий7
2Кирилл6
3Владимир8

Пример

В данном примере с помощью условия WHERE
выбираются только те записи, в которых длина поля name больше или равна 7:

SELECT *, LENGTH(name) as length FROM workers WHERE LENGTH(name)>=7

SQL запрос выберет следующие строки:

id
айди
name
имя
length
длина строки
1Дмитрий7
3Владимир8

Пример

Конечно, не обязательно делать поле length,
чтобы применить функцию LENGTH в условии:

SELECT * FROM workers WHERE LENGTH(name)>=7

SQL запрос выберет следующие строки:

id
айди
name
имя
1Дмитрий
3Владимир

Как найти длину строки в SQL SERVER? Функция LEN() с примером

Вы можете использовать функцию LEN (), чтобы найти длину строкового значения в SQL Server, например, LEN (emp_name) даст вам длину, хранящуюся в строке emp_name . Помните, что это отличается от длины фактической длины, которую вы указали при создании таблицы, например emp_name VARCHAR (60) . Вам пример, у вас есть столбец под названием emp_name VARCHAR (60), это означает, что длина этой колонки 60 символов, он может содержать имена с максимум 60 символов длиной, но не все имена 60 символов. На этом уроке SQL Server, я научу вас как использовать функцию LEN() в SQL, чтобы выяснить фактическую длину или количество символов в VARCHAR или поле CHAR.

Функция LEN () с примером в SQL SERVER 2014

Если вы хотите узнать все имена, которые меньше, чем 10 символов, вы можете использовать функцию LEN(), как следующий запрос SQL:

SELECT emp_name from Employee where LEN(emp_name) < 10

 

В данном примере возвратит всех сотрудников, имя которого меньше, чем 10 символов. Функция LEN() является очень полезной, она принимает имя столбца и возвращает длину строки.

Давайте посмотрим еще пару примеров функции LEN () в SQL Server 2008 и 2014:

1) Написать запрос SQL, чтобы узнать всех сотрудников, чье имя больше, чем 10 символов, но менее 50 символов

SELECT name from Employee where LEN(name) > 10 and LEN(name) < 50

 

Можно также применить условную логику с помощью CASE сделать требуемое, основанное на различной длине, например, вы можете сократить длинное название с добавлением “…” в конце строки.

SELECT CASE WHEN LEN (emp_name) <= 50 
THEN emp_name
ELSE LEFT(emp_name, 60) + '...'
END As emp_name
FROM Employee

 

Поэтому не забывайте используя функцию LEN () в SQL Server, вы узнаете длину любой строки, хранящейся в колонке VARCHAR. Он не должен быть VARCHAR, но функция LEN() принимает текстовое значение, которое означает, что он может быть CHAR, VARCHAR, NCHAR или NVARCHAR.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Строковый тип данных в SQL

Строковый тип данных является наиболее используемым типом данных. Благодаря ему в базе данных хранятся как текстовые, так и различные двоичные данные (например, картинки).

В MySQL он представлен следующими типами:

CHAR и VARCHAR

ТипОписаниеДиапозон символов
CHAR(X)Содержит текстовые строки. Длина фиксируемая, ее вы указываете при объявлении. В случае, если длина строки меньше указанной, она дополняются правыми пробелами до указанной длины.Длина может быть любой в диапазоне от 0 до 255
VARCHAR(X)Содержит текстовые строки. Длина строк динамическая.Длина может быть любой в диапазоне от 0 до 65,535

BINARY и VARBINARY

Типы данных BINARY и VARBINARY аналогичны VARCHAR и CHAR только они хранят двоичные строки.

ТипОписаниеДиапозон символов
BINARY(X)Содержит двоичные строки. Длина фиксируемая, ее вы указываете при объявлении.Длина может быть любой в диапазоне от 0 до 255
VARBINARY(X)Содержит двоичные строки. Длина строк динамическая.Длина может быть любой в диапазоне от 0 до 65,535

BLOB и TEXT

BLOB используется для хранения больших бинарных данных, таких как картинки. TEXT предназначен также для хранения больших данных, но текстового содержания.

Разница между ними заключается в том, что сортировки и сравнения сохраненных данных у BLOB чувствительны к регистру и не чувствительны к регистру в полях TEXT.

ТипОписаниеДиапозон символов
BLOBСодержит двоичные строки.Максимальная длина 65,535
TEXTСодержит текстовые строки.Максимальная длина 65,535

BLOB и TEXT имеют дополнительные подтипы, которые отличаются максимальным размером данных, которые можно в них хранить.

ТипДиапозон символов
TINYBLOBМаксимальная длина 255
MEDIUMBLOBМаксимальная длина 16,777,215
LONGBLOBМаксимальная длина 4,294,967,295
TINYTEXTМаксимальная длина 255
MEDIUMTEXTМаксимальная длина 16,777,215
LONGTEXTМаксимальная длина 4,294,967,295

LPAD ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию LPAD с синтаксисом и примерами.

Описание

Функция Oracle/PLSQL LPAD добавляет с левой части строки определенный набор символов (при не нулевом string1).

Синтаксис

Синтаксис функции Oracle/PLSQL LPAD:

LPAD( string1, padded_length, [ pad_string ] )

Параметры или аргументы

string1 строка, для дополнения символов (с левой стороны).

padded_length количество дополняемых символов. Если padded_length меньше исходной строки, то функция LPAD обрежет строку с размером padded_length.

pad_string не является обязательным. Это строка, которая будет подгоняться по левой стороне string1. Если этот параметр не указан, то функция LPAD дополнит пробелы к левой стороне string1.

Примечание

  • Функция LPAD возвращает string значение.
  • Смотрите также: RPAD функция.

Применение

Функцию LPAD можно использоватьа в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример

Рассмотрим несколько примеров функции LPAD и изучим, как использовать функцию LPAD в Oracle/PLSQL.

SQL> SELECT LPAD(‘lpad’, 7) FROM DUAL;

—Результат: lpad

SQL> SELECT LPAD(‘lpad’, 2) FROM DUAL;

—Результат: lp

SQL> SELECT LPAD(‘lpad’, 8, ‘0’) FROM DUAL;

—Результат: 0000lpad

SQL> SELECT LPAD(‘lpad function’, 15, ‘z’) FROM DUAL;

—Результат: zzlpad function

SQL> SELECT LPAD(‘lpad function’, 16, ‘z’) FROM DUAL;

—Результат: zzzlpad function

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

SQL> SELECT LPAD(‘lpad’, 7) FROM DUAL;

 

—Результат:   lpad

 

SQL> SELECT LPAD(‘lpad’, 2) FROM DUAL;

 

—Результат:   lp

 

SQL> SELECT LPAD(‘lpad’, 8, ‘0’) FROM DUAL;

 

—Результат:   0000lpad

 

SQL> SELECT LPAD(‘lpad function’, 15, ‘z’) FROM DUAL;

 

—Результат:   zzlpad function

 

SQL> SELECT LPAD(‘lpad function’, 16, ‘z’) FROM DUAL;

 

—Результат:   zzzlpad function

REGEXP_COUNT ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

В этом учебном пособии вы узнаете, как использовать функцию REGEXP_COUNT Oracle/PLSQL с синтаксисом и примерами.

Описание

Функция Oracle/PLSQL REGEXP_COUNT подсчитывает количество вхождений шаблона в строку. Эта функция, введенная в Oracle 11g, позволит вам подсчитать количество раз, когда подстрока встречается в строке с использованием сопоставления шаблонов регулярных выражений.

Синтаксис

Синтаксис функции Oracle/PLSQL REGEXP_COUNT:

REGEXP_COUNT( string, pattern [, start_position [, atch_parameter ] ] )

Параметры или аргументы

string
Строка для поиска. Строкой могут быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.
pattern
Шаблон. Регулярное выражение для сопоставления. Это может быть комбинацией следующих значений:

ЗначениеОписание
^Соответствует началу строки. При использовании match_parameter с m, соответствует началу строки в любом месте в пределах выражения.
$Соответствует концу строки. При использовании match_parameter с m, соответствует концу строки в любом месте в пределах выражения.
*Соответствует нолю или более вхождений.
+Соответствует одному или более вхождений.
?Соответствует нолю или одному вхождению.
.Соответствует любому символу, кроме NULL.
|Используется как «OR», чтобы указать более одной альтернативы.
[ ]Используется для указания списка совпадений, где вы пытаетесь соответствовать любому из символов в списке.
[^ ]Используется для указания списка nonmatching, где вы пытаетесь соответствовать любому символу, за исключением тех кто в списке.
( )Используется для групповых выражений в качестве подвыражений.
{m}Соответствует m раз.
{m,}Соответствие как минимум m раз.
{m,n}Соответствие как минимум m раз, но не более n раз.
\nn представляет собой число от 1 до 9. Соответствует n-му подвыражению находящемуся в ( ) перед \n.
[..]Соответствует одному сопоставлению элемента, который может быть более одного символа.
[::]Соответствует классу символов.
[==]Соответствует классу эквивалентности
\dСоответствует цифровому символу.
\DСоответствует не цифровому символу.
\wСоответствует текстовому символу.
\WСоответствует не текстовому символу.
\sСоответствует символу пробел.
\SСоответствует не символу пробел.
\AСоответствует началу строки или соответствует концу строки перед символом новой строки.
\ZСоответствует концу строки.
*?Соответствует предыдущему шаблону ноль или более вхождений.
+?Соответствует предыдущему шаблону один или более вхождений.
??Соответствует предыдущему шаблону ноль или одному вхождению.
{n}?Соответствует предыдущему шаблону n раз.
{n,}?Соответствует предыдущему шаблону, по меньшей мере n раз.
{n,m}?Соответствует предыдущему шаблону, по меньшей мере n раз, но не более m раз.

start_position
Необязательный. Это позиция в строке, откуда начнется поиск. Если этот параметр опущен, по умолчанию он равен 1, который является первой позицией в строке.

match_parameter
Необязательный. Он позволяет изменять поведение соответствия для функции REGEXP_COUNT. Это может быть комбинацией следующих значений:

ЗначениеОписание
‘c’Выполняет чувствительное к регистру согласование.
‘i’ Выполняет не чувствительное к регистру согласование.
‘n’Позволяет период символа (.) для соответствия символа новой строки. По умолчанию, период метасимволы.
‘m’Выражение допускает, что есть несколько строк, где ^ это начало строки, а $ это конец строки, независимо от позиции этих символов в выражении. По умолчанию предполагается, что выражение в одной строке.
‘x’Игнорируются символы пробелов. По умолчанию, символы пробелов совпадают, как и любой другой символ.

Функция REGEXP_COUNT возвращает числовое значение.

Примечание

  • Если для параметра match_parameter имеются конфликтующие значения, функция REGEXP_COUNT будет использовать последнее значение.
  • Если функция REGEXP_COUNT не обнаруживает какого-либо вхождение шаблона, она вернет 0.

Применение

Функцию REGEXP_COUNT можно использовать в следующих версиях Oracle / PLSQL:

Пример совпадения единичного символа

Рассмотрим простейший пример. Давайте посчитаем, сколько раз символ ‘a’ появляется в строке.
Например:

SELECT REGEXP_COUNT (‘Aller Anfang ist schwer’, ‘a’)
FROM dual;

—Результат: 1

SELECT REGEXP_COUNT (‘Aller Anfang ist schwer’, ‘a’)

FROM dual;

 

—Результат: 1

Этот пример вернет 1, потому что он подсчитывает количество вхождений ‘a’ в строке. Так как мы не указали значение match_parameter, то функция REGEXP_COUNT выполнит поиск с учетом регистра, что означает, что символ ‘A’ не будет включен в счет.

Если бы мы хотели включить в наш результат как ‘a’, так и ‘A’, и выполнить поиск без учета регистра, то изменим наш запрос следующим образом:

SELECT REGEXP_COUNT (‘Aller Anfang ist schwer’, ‘a’, 1, ‘i’)
FROM dual;

—Результат: 3

SELECT REGEXP_COUNT (‘Aller Anfang ist schwer’, ‘a’, 1, ‘i’)

FROM dual;

 

—Результат: 3

Теперь, поскольку мы предоставили start_position = 1 и match_parameter = ‘i’, то запрос в качестве результата вернет 3. На этот раз значения ‘a’ и ‘A’ будут включены в счет.

Если бы мы хотели подсчитать количество ‘a’ в столбце, мы могли бы попробовать что-то вроде этого:

SELECT REGEXP_COUNT (last_name, ‘a’, 1, ‘i’) AS total
FROM contacts;

SELECT REGEXP_COUNT (last_name, ‘a’, 1, ‘i’) AS total

FROM contacts;

Этот запрос будет подсчитывать количество значений ‘a’ или ‘A’ в поле last_name из таблицы contacts.

Пример совпадения нескольких символов

Рассмотрим, как мы будем использовать функцию REGEXP_COUNT для соответствия многосимвольному шаблону.
Например:

SELECT REGEXP_COUNT (‘Gute Saat, gute Ernte’, ‘gute’, 1, ‘i’)
FROM dual;

—Результат: 2

SELECT REGEXP_COUNT (‘Gute Saat, gute Ernte’, ‘gute’, 1, ‘i’)

FROM dual;

 

—Результат: 2

В этом примере будет возвращено количество раз, когда в строке появляется слово ‘gute’. Поиск выполняется без учета регистра, поэтому в результате 2 вхождения.

SELECT REGEXP_COUNT (‘Gute Saat, gute Ernte’, ‘gute’, 5, ‘i’)
FROM dual;

—Результат: 1

SELECT REGEXP_COUNT (‘Gute Saat, gute Ernte’, ‘gute’, 5, ‘i’)

FROM dual;

 

—Результат: 1

В этом примере будет возвращено количество раз, когда слово ‘gute’ появляется в строке, начиная с позиции 5. В этом случае результат = 1, потому что перед поиском шаблона он пропустит первые 4 символа в строке.

Теперь давайте посмотрим, как мы будем использовать функцию REGEXP_COUNT со столбцом таблицы и искать несколько символов.

Например:

SELECT REGEXP_COUNT (other_comments, ‘the’, 1, ‘i’)
FROM contacts;

—Результат: 3

SELECT REGEXP_COUNT (other_comments, ‘the’, 1, ‘i’)

FROM contacts;

 

—Результат: 3

В этом примере мы будем подсчитывать количество появления «the» в поле other_comments в таблице contacts.

Пример сопоставления нескольких альтернатив.

Следующий пример, который мы рассмотрим, включает использование | pattern. | pattern используется как «ИЛИ», чтобы указать несколько альтернатив.

Например:

SELECT REGEXP_COUNT (‘AeroSmith’, ‘a|e|i|o|u’)
FROM dual;

—Результат: 3

SELECT REGEXP_COUNT (‘AeroSmith’, ‘a|e|i|o|u’)

FROM dual;

 

—Результат: 3

Этот пример вернет 3, потому что он подсчитывает количество гласных (a, e, i, o или u) в строке ‘AeroSmith’. Поскольку мы не указали значение match_parameter, функция REGEXP_COUNT будет выполнять поиск с учетом регистра, что означает, что ‘A’ в ‘AeroSmith’ не будет считаться.

Мы могли бы изменить наш запрос следующим образом, чтобы выполнить поиск без учета регистра следующим образом:

SELECT REGEXP_COUNT (‘AeroSmith’, ‘a|e|i|o|u’, 1, ‘i’)
FROM dual;

—Результат: 4

SELECT REGEXP_COUNT (‘AeroSmith’, ‘a|e|i|o|u’, 1, ‘i’)

FROM dual;

 

—Результат: 4

Теперь, поскольку мы указали start_position = 1 и match_parameter = ‘i’, запрос вернет в качестве результата 4. На этот раз ‘A’ в ‘AeroSmith’ будет включена в счет.

Теперь давайте посмотрим, как мы будем использовать эту функцию со столбцом.

Итак, допустим, у нас есть таблица контактов со следующими данными:

contact_idlast_name
1000AeroSmith
2000Joy
3000Scorpions

Теперь давайте запустим следующий запрос:

SELECT contact_id, last_name, REGEXP_COUNT (last_name, ‘a|e|i|o|u’, 1, ‘i’) AS total
FROM contacts;

SELECT contact_id, last_name, REGEXP_COUNT (last_name, ‘a|e|i|o|u’, 1, ‘i’) AS total

FROM contacts;

Результаты, которые будут возвращены запросом:

contact_idlast_name total
1000AeroSmith4
2000Joy1
3000Scorpions3

Преобразования функции Oracle PL/SQL — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Функция & Описание
BIN_TO_NUM
Функция Oracle/PLSQL BIN_TO_NUM преобразует вектор в соответствующее десятичное число.
CAST
Функция Oracle/PLSQL CAST конвертирует (преобразует) один тип данных в другой.
CHARTOROWID
Функция Oracle/PLSQL CHARTOROWID преобразует символ, varchar2, NCHAR или NVARCHAR2 к ROWID.
CONVERT
Функция Oracle/PLSQL CONVERT преобразует строку из одного набора символов в другой.
DECOMPOSE
Функция Oracle/PLSQL DECOMPOSE принимает строку и возвращает строку Unicode.
FROM_TZ
Функция Oracle/PLSQL FROM_TZ преобразует значение TIMESTAMP, в TIMESTAMP со значением часового пояса.
HEXTORAW
Функция Oracle/PLSQL HEXTORAW преобразует строку, представляющую шестнадцатеричное число в значение типа RAW.
NUMTODSINTERVAL
Функция Oracle/PLSQL NUMTODSINTERVAL преобразует числовое значение в значение типа INTERVAL DAY TO SECOND.
NUMTOYMINTERVAL
Функция Oracle/PLSQL NUMTOYMINTERVAL преобразует числовое значение в значение типа INTERVAL YEAR TO MONTH.
RAWTOHEX
Функция Oracle/PLSQL RAWTOHEX преобразует значение типа RAW в шестнадцатеричное представление символа.
TO_CLOB
Функция Oracle/PLSQL TO_CLOB преобразует символьные данные типа CLOB
TO_DSINTERVAL
Функция Oracle/PLSQL TO_DSINTERVAL преобразует строку в INTERVAL DAY TO SECOND.
TO_LOB
Функция Oracle/PLSQL TO_LOB преобразует LONG или LONG RAW значения в LOB значений.
TO_MULTI_BYTE
Функция Oracle/PLSQL TO_MULTI_BYTE возвращает символьное значение со всех однобайтовых символов и преобразовывает в многобайтовые символы. Для использования этой функции, набор символов вашей базы данных должен состоять как из однобайтных, так и из многобайтных символов.
TO_NCLOB
Функция Oracle/PLSQL TO_NCLOB преобразует значение LOB в значение NCLOB.
TO_NUMBER
Функция Oracle/PLSQL TO_NUMBER преобразует строку в число.
TO_SINGLE_BYTE
Функция Oracle/PLSQL TO_SINGLE_BYTE возвращает значение символа в котором все многобайтовые символы преобразованы в однобайтовые символы. Для использования этой функции, набор символов вашей базы данных должен состоять как из однобайтовых, так и из многобайтовых символов.
TO_TIMESTAMP_TZ
Oracle/PLSQL функция TO_TIMESTAMP_TZ преобразует строку в значение типа TIMESTAMP с TIMEZONE (часовым поясом).
TO_TIMESTAMP
Функция Oracle/PLSQL TO_TIMESTAMP преобразует строку в значение TIMESTAMP.
TO_YMINTERVAL
Oracle/PLSQL функция TO_YMINTERVAL преобразует строку в значение типа NTERVAL от YEAR до MONTH.

ДЛИНА

— получить длину строки — миграция с Oracle на SQL Server

В Oracle функция LENGTH возвращает длину строки в символа , как определено входным набором символов. В SQL Server вы можете использовать функцию LEN, но обратите внимание, что она исключает завершающие пробелы.

При применении к столбцу CHAR или NCHAR Oracle LENGTH возвращает максимальную длину столбца (определенную в CREATE TABLE), а SQL Server LEN возвращает фактическую длину данных.

Пример Oracle :

 - Получить длину строки (возвращает 5)
  ВЫБЕРИТЕ ДЛИНУ ('Испания') ИЗ двойного; 

Пример сервера SQL :

 - Получить длину строки (возвращает 5)
  ВЫБЕРИТЕ LEN («Испания»); 

Сводка преобразования Oracle LENGTH в SQL Server:

Последнее обновление : Oracle 11g R2 и Microsoft SQL Server 2012

Когда функция Oracle LENGTH используется для столбца переменной длины, не содержащего завершающих пробелов, ее можно преобразовать в функцию SQL Server LEN.

Конечные пробелы

Функция Oracle LENGTH считает конечные пробелы:

Оракул :

 - Включены конечные пробелы (возвращает 7)
  ВЫБЕРИТЕ ДЛИНУ ('Греция') ИЗ двойного; 

Функция SQL Server LEN исключает конечные пробелы:

SQL Server :

 - Конечные пробелы исключены (возвращает 6)
  ВЫБЕРИТЕ LEN («Греция»); 

Чтобы включить конечные пробелы в длину строки, вы можете использовать функцию DATALENGTH в SQL Server, которая возвращает число байтов , поэтому вам нужно разделить результат на 2 для строк Unicode (UCS-2 в SQL Server):

SQL Server :

 - Включены конечные пробелы (возвращает 7)
  ВЫБРАТЬ ДЛИНА ДАННЫХ («Греция»);

  - Попытка DATELENGTH со строкой Unicode (возвращает 14)
  ВЫБРАТЬ ДЛИНА ДАННЫХ (N'Greece ');

  - Использование DATALENGTH для получения длины строки Unicode в символах (возвращает 7)
  ВЫБРАТЬ ДЛИНА ДАННЫХ (N'Greece ') / 2; 

Колонны фиксированной длины

Когда функция Oracle LENGTH используется со столбцом CHAR или NCHAR, она возвращает максимальный размер столбца, определенный в операторе CREATE TABLE, а не фактическую длину данных:

Оракул :

 - Определите таблицу со столбцом переменной и фиксированной длины
  СОЗДАТЬ ТАБЛИЦУ страны
  (
    имя VARCHAR2 (90),
    имя2 СИМВОЛ (90)
  );

  - Вставить образец строки
  ВСТАВИТЬ ЦЕННОСТИ стран («Украина», «Украина»);

  - Фактическая длина данных возвращается для столбца VARCHAR (возвращает 7)
  ВЫБЕРИТЕ ДЛИНУ (имя) ИЗ стран;

  - Максимальный размер столбца возвращается для столбца CHAR (возвращает 90)
  ВЫБЕРИТЕ ДЛИНУ (имя2) ИЗ стран; 

В SQL Server функция LEN возвращает фактическую длину данных для столбцов переменной и фиксированной длины:

SQL Server :

 - Определите таблицу со столбцом переменной и фиксированной длины
  СОЗДАТЬ ТАБЛИЦУ страны
  (
    имя VARCHAR (90),
    имя2 СИМВОЛ (90)
  );

  - Вставить образец строки
  ВСТАВИТЬ ЦЕННОСТИ стран («Украина», «Украина»);

  - Фактическая длина данных возвращается для столбца VARCHAR (возвращает 7)
  ВЫБЕРИТЕ ОБЪЕКТИВ (имя) ИЗ страны;

  - Фактическая длина данных также возвращается для столбца CHAR (возвращает 7)
  ВЫБЕРИТЕ LEN (name2) ИЗ страны; 

Если вам нужно вернуть максимальный размер столбца, вы можете использовать функцию COL_LENGTH в SQL Server:

SQL Server :

 - получить максимальный размер столбца в байтах (возвращает 90)
  ВЫБЕРИТЕ COL_LENGTH ('страны', 'имя2') ИЗ стран; 

Oracle 11g R2 Справочник по языку SQL

Microsoft SQL Server 2012 — Электронная документация

SQLines предлагает услуги по миграции баз данных и приложений Oracle на Microsoft SQL Server.Для получения более подробной информации, пожалуйста, свяжитесь с нами.

.

oracle — REG: разделение данных на CRLF и длину 10 символов (SQL, PL / SQL)

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *