ASCII_VAL()

Версии сервера

0.91.01.5.31.5.41.5.52.02.12.53.0
Как UDFДаДаДаДаДаДа---
Как встроенная функция------ДаДаДа

Доступно в

DSQL, ISQL, PSQL

Формат

ASCII_VAL( < аргумент > )
АргументОписание
< аргумент >CHAR(1) одиночный символ
ВозвращаетINTEGER - код символа в таблице символов кодировки.

Описание

Функция ASCII_VAL возвращает код символа в таблице символов, переданного в качестве параметра < аргумент >.

⚠️ В Firebird версии младше 2.1 для того, чтобы пользоваться этой функцией, ее небходимо подключить к базе данных как UDF.

Объявление

  1. В Firebird версии младше 2.1 функция объявляется как UDF в внешнем модуле “ib_udf”.
DECLARE EXTERNAL FUNCTION ASCII_VAL
  CHAR(1)
RETURNS
  INTEGER BY VALUE
ENTRY_POINT "IB_UDF_ascii_val" MODULE_NAME "ib_udf";
  1. В Firebird версии 2.1 и старше является встроенной функцией при соглашении объявления ее как:
DECLARE EXTERNAL FUNCTION ASCII_VAL
  CHAR(1)
RETURNS
  INTEGER BY VALUE
ENTRY_POINT "ascii_val" MODULE_NAME SYSTEM;

Пример

Допустим, существует таблица CUSTOMERS с доменами ID INTEGER и NAME VARCHAR(80).

Требуется выбрать из таблицы все записи, упорядочив их по алфавиту, учтя при этом ошибки ввода данных, когда оператор ввода мог ошибиться и не может визуально заметить свою ошибку (например, отличить латинский символ “C” и русский символ “С”, ввиду расположения их на клавиатуре).

PSQL

SET TERM !!!;

CREATE OR ALTER PROCEDURE CUST_ORDER_LIST RETURNS (
   ORDER_ID  INTEGER
  ,CUST_NAME VARCHAR(80)
)AS
BEGIN
  FOR
    SELECT C.NAME
    FROM   CUSTOMERS C
    INTO   :CUST_NAME
  DO
    BEGIN
    ORDER_ID = ASCII_VAL( SUBSTRING(:CUST_NAME FROM 1 FOR 1) );
    SUSPEND;
    END
END !!!

SET TERM ; !!!

И далее мы вибираем упорядоченные записи :

SELECT PR.ORDER_ID, PR CUT_NAME 
FROM   CUST_ORDER_LIST PR
ORDER BY PR.ORDER_ID

См. также

SUBSTRING(), UDF, Встроенные функции

Источник

langref.pdf

Обсуждение