Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Firebird Π Π£ΠšΠžΠ’ΠžΠ”Π‘Π’Π’Πž Π ΠΠ—Π ΠΠ‘ΠžΠ’Π§Π˜ΠšΠ БАЗ ДАННЫΠ₯Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 197

Автор Π₯Π΅Π»Π΅Π½ Π‘ΠΎΡ€Ρ€ΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ возвращаСтся 200313:

SELECT WOY('26.03.2003')

FROM RDB$DATABASE;


Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

IB_UDF

ASCII_CHAR(VALUE)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ символ ASCII, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌΡƒ Π΅ΠΉ дСсятичному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

АргумСнты

VALUE являСтся столбцом, константой ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° SMALLINT ΠΈΠ»ΠΈ INTEGER

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠžΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΉ символ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π² столбСц символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки внСшнСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

UPDATE EXT_FILE

SET EOL = ASCII_CHAR(13) || ASCII_CHAR(10);


IB_UDF

ASCII_VAL(VALUE)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ASCII, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌΡƒ Π΅ΠΉ дСсятичному Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

АргумСнты

VALUE являСтся столбцом, константой ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠ° CHAR

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π¦Π΅Π»ΠΎΠ΅ дСсятичноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ASCII

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

SELECT ASCII_VAL('&') AS ASC_NUM FROM RDB$DATABASE;


IB_UDF

LOWER(VALUE)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄Π½ΡƒΡŽ строку Π² Π²ΠΈΠ΄Π΅ символов Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС. Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с символами ASCII

АргумСнты

VALUE являСтся столбцом ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки ASCII Π΄Π»ΠΈΠ½ΠΎΠΉ 32 765 Π±Π°ΠΉΡ‚ ΠΈΠ»ΠΈ мСньшС

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

CHAR(n) ΠΈΠ»ΠΈ VARCHAR(n) Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎ ΠΈ входная строка

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄ΠΎ 32 767 символов, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½Π΅Ρ‚ строку 'come and sit at my table':

SELECT LOWER('Come and sit at MY TABLE') AS L_STRING FROM RDB$DATABASE;


IB_UDF

LPAD(VALUE, LENGTH, IN_CHAR)

Linux, Win32

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ символ IN CHAR ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки VALUE Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ строки Π½Π΅ станСт Ρ€Π°Π²Π½ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ числу LENGTH

АргумСнты

VALUE: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ (32767 - LENGTH) Π±Π°ΠΉΡ‚.

LENGTH: константа ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ†Π΅Π»ΠΎΠ³ΠΎ.

IN CHAR: ΠΎΠ΄ΠΈΠ½ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС символа заполнитСля

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

CHAR(n) ΠΈΠ»ΠΈ VARCHAR(n), Π³Π΄Π΅ n ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° LENGTH

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄ΠΎ 32 767 символов, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½Π΅Ρ‚ строку ' ##########RHUBARB ':

SELECT LPAD('RHUBARB', 17, '#') AS LPADDED_STRING FROM RDB$DATABASE;

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ RPAD()


IB_UDF

LTRIM(VALUE)

Linux, Win32

УдаляСт Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки

АргумСнты

VALUE - столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 767 Π±Π°ΠΉΡ‚

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

CHAR(N) ΠΈΠ»ΠΈ VARCHAR(n) Π±Π΅Π· Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32 765 Π±Π°ΠΉΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° BEFORE INSERT Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки:

NEW.CHARACTER_COLUMN =

LTRIM(NEW.CHARACTER_COLUMN) ;

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ RTRIM(), F_RTRIM(), F_LRTRIM()


FBUDF

SRIGHT(VALUE, LENGTH)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку для VALUE, ΡΠ²Π»ΡΡŽΡ‰ΡƒΡŽΡΡ ΠΏΡ€Π°Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ строки VALUE Π΄Π»ΠΈΠ½ΠΎΠΉ LENGTH символов

АргумСнты

НСт

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

VALUE: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 767 Π±Π°ΠΉΡ‚.

LENGTH: константа ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ†Π΅Π»ΠΎΠ³ΠΎ

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32 765 Π±Π°ΠΉΡ‚, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½Π΅Ρ‚ строку 'fox jumps over the lazy dog': SELECT SRIGHT('The quick brown fox jumps over the lazy dog.', 28)

AS R_STRING FROM RDB$DATABASE;

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ SUBSTRO , SUBSTRLEN(), Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SUBSTRING()


IB_UDF

RPAD(VALUE, LENGTH, IN_CHAR)

Linux, Win32

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ символ IN_CHAR К ΠΊΠΎΠ½Ρ†Ρƒ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки VALUE Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ строки Π½Π΅ станСт Ρ€Π°Π²Π½ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ числу LENGTH

АргумСнты

VALUE: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ (32765 - LENGTH) Π±Π°ΠΉΡ‚.

LENGTH: константа ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ†Π΅Π»ΠΎΠ³ΠΎ.

IN CHAR ΠΎΠ΄ΠΈΠ½ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС символа заполнитСля

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

CHAR(n) ΠΈΠ»ΠΈ VARCHAR(n), Π³Π΄Π΅ n ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° LENGTH

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄ΠΎ 32 765 символов, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Π΅Ρ€Π½Π΅Ρ‚ строку ' Framboise***********':

SELECT RPAD ('Framboise', 20, ' * ' ) AS RPADDED_STRING

FROM RDB$DATABASE;

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ LPADO


IB_UDF

RTRIM(VALUE)

Linux, Win32

УдаляСт ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки

АргумСнты

VALUE- столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 765 Π±Π°ΠΉΡ‚

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

CHAR(n) ΠΈΠ»ΠΈ VARCHAR(n) Π±Π΅Π· ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32 765 Π±Π°ΠΉΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π° BEFORE INSERT Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки:

. . .

NEW.CHARACTER_COLUMN = RTRIM (NEW.CHARACTER_COLUMN);

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

см. Ρ‚Π°ΠΊΠΆΠ΅ LTRIM(), F_LRTRIM()


IB_UDF

STRLEN(VALUE)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки

АргумСнты

VALUE - столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π΄Π»ΠΈΠ½ΠΎΠΉ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 765 Π±Π°ΠΉΡ‚

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π¦Π΅Π»ΠΎΠ΅ число, Π΄Π»ΠΈΠ½Π° (счСтчик) символов Π² строкС

ЗамСчания

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32 765 Π±Π°ΠΉΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ модуля PSQL присваиваСт Π΄Π»ΠΈΠ½Ρƒ столбца локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

. . .

DECLARE VARIABLE LEN INTEGER;

. . .

SELECT COL1, COL2, COL3 FROM ATABLE

INTO :VI, :V2, :V3;

LEN = STRLEN(V3);

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ SUBSTRLEN()


IB_UDF

SUBSTR(VALUE, P0S1, P0S2)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ с POSI ΠΏΠΎ POS2 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Если POS2 ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки, Ρ‚ΠΎ функция Π²Π΅Ρ€Π½Π΅Ρ‚ всС символы с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ POSI Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки

АргумСнты

VALUE: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки.

POSI, POS2: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π‘Ρ‚Ρ€ΠΎΠΊΠ°

ЗамСчания

Если Π²Ρ‹ пСрСноситС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, написанноС для InterBase, ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ эта вСрсия SUBSTRO отличаСтся ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² поставляСмой Borland Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ib_udf Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SUBSTRO, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ NULL, Ссли POS2 Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ строки.

Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ 32 765 Π±Π°ΠΉΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Π΅ символы, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ для ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Firebird

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ символа Ρƒ строки COLUMNB ΠΈ устанавливаСт Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² строку, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 4 ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ 100. Если строка заканчиваСтся Π΄ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 100, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‚ всС символы ΠΎΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 4 Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки:

UPDATE ATABLE

SET COLUMNB = SUBSTR(COLUMNB, 4, 100) WHERE...

БвязанныС ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ SUBSTRLEN(), RTRIM(), Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SUBSTRING()


IB_UDF

SUBSTRLEN(VALUE, STARTPOS, LENGTH)

Linux, Win32

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку Π΄Π»ΠΈΠ½ΠΎΠΉ LENGTH, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ STARTPOS. Π”Π»ΠΈΠ½Π° этой строки Π±ΡƒΠ΄Π΅Ρ‚ мСньшС, Ρ‡Π΅ΠΌ LENGTH, Ссли Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ позиция плюс Π΄Π»ΠΈΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ Π΄Π»ΠΈΠ½Ρƒ исходной строки

АргумСнты

VALUE: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° строки Π½Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅ 32 765 Π±Π°ΠΉΡ‚.

STARTPOS: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

LENGTH: столбСц ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся Ρ†Π΅Π»Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅