0.9 | 1.0 | 1.5.3 | 1.5.4 | 1.5.5 | 2.0 | 2.1 | 2.5 | 3.0 | |
---|---|---|---|---|---|---|---|---|---|
Как UDF | Да | Да | Да | Да | Да | Да | - | - | - |
Как встроенная функция | - | - | - | - | - | - | Да | Да | Да |
ASCII_CHAR( < аргумент > )
Функция ASCII_CHAR возвращает символ по его коду, переданного в качестве параметра < аргумент >.
В Firebird версии младше 2.1 для того, чтобы пользоваться этой функцией, ее небходимо подключить к базе данных как UDF.
1. В Firebird версии младше 2.1 функция объявляется как UDF в внешнем модуле «ib_udf».
DECLARE EXTERNAL FUNCTION ASCII_CHAR INTEGER RETURNS CHAR(1) ENTRY_POINT "IB_UDF_ascii_char" MODULE_NAME "ib_udf";
2. В Firebird версии 2.1 и старше является встроенной функцией при соглашении объявления ее как:
DECLARE EXTERNAL FUNCTION ASCII_CHAR INTEGER RETURNS CHAR(1) ENTRY_POINT "ascii_char" MODULE_NAME SYSTEM;
Допустим, существует таблица CUSTOMERS с доменами ID INTEGER и NAME VARCHAR(80).
Требуется выбрать из таблицы все записи с ID < 10, вернув их в виде списка, разделенного точкой с запятой.
SET TERM !!!; CREATE OR ALTER PROCEDURE CUST_LIST RETURNS ( CUSTS BLOB SUB_TYPE TEXT )AS DECLARE VARIABLE P_CUST_NAME VRACHAR(80); BEGIN CUSTS = ''; FOR SELECT C.NAME FROM CUSTOMERS C WHERE (C.ID < 10) INTO :P_CUST_NAME DO CUSTS = :CUSTS || :P_CUST_NAME || ASCII_CHAR(59); SUSPEND; END !!! SET TERM ; !!!
langref.pdf