Database Programming & Design




Определяемые пользователями типы - часть 2


встроенный оператор. В следующих предложениях SQL определяются

оператор "+" для двух значений типа DOLLARS и оператор "*" для

значения целого типа и значения типа DOLLARS:

CREATE FUNCTION "+" (DOLLARS,DOLLARS)

RETURN DOLLARS

SOURCE

SYSIBM."+" (DECIMAL(),DECIMAL());

CREATE FUNCTION "*" (INTEGER,DOLLARS)

RETURN DOLLARS

SOURCE

SYSIBM."*" (INTEGER,DECIMAL());

После выполнения этих предложений выражения SALARY+BONUS и

2*SALARY будут допустимыми, но выражение SALARY*BUNUS останется

недопустимым, поскольку оператор умножения не определен для двух

значений типа DOLLARS.

Конечно, может потребоваться расширить функциональность

индивидуального типа за пределы набора операторов базового типа.

Например, можно создать тип ADDRESS, основанный на встроенном

типе VARCHAR(50). После этого можно создать определяемую

пользователями функцию TIMEZONE(ADDRESS), вычисляющую временную

зону этого адреса. Как и любая другая UDF, функция TIMEZONE может

быть написана на языках Си, Си++ и Бейзик и должна быть

зарегистрирована в соответствующей базе данных.




Содержание  Назад  Вперед