Синтаксис пользовательских функций IBM DB2 - PullRequest
0 голосов
/ 30 марта 2011

У меня есть пользовательская функция DB2 регулярного выражения следующим образом: -

CREATE OR REPLACE FUNCTION REGEXP_LIKE(SOURCE VARCHAR(3000), REGEX VARCHAR(512), 
MODE VARCHAR(3))

RETURNS INTEGER
FENCED 
NOT DETERMINISTIC
NO SQL
LANGUAGE JAVA
PARAMETER STYLE JAVA
EXTERNAL NAME 'db2_regex:com.ibm.avalanche.udf.regex.Regexp.regexpLike'
NO EXTERNAL ACTION
@

Это взято из следующей статьи (http://www.ibm.com/developerworks/data/library/techarticle/dm-1011db2luwpatternmatch/index.html?ca=drs-)

Эту функцию можно использовать следующим образом: -

select ID from TABLE where 
REGEXP_LIKE(STRING, 'regex', 'i') > 0

Версия оракула выглядит следующим образом: -

select ID from TABLE where 
REGEXP_LIKE(STRING, 'regex', 'i')

Обратите внимание, что для него не требуется больше нуля (> 0).

У меня такой вопрос: - Можно ли добиться этого синтаксиса Oracle в предыдущей функции DB2. Я думаю, что ключ мой может быть "ВОЗВРАЩАЕТСЯ INTEGER"?

Я пробовал несколько разных вещей, любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 21 апреля 2011

DB2 9.7 для Linux, UNIX и Windows поддерживает только логический тип данных внутри модулей кода PL / SQL, работающих в базе данных DB2, созданной с включенными векторами совместимости Oracle.

Следовательно, вы не сможете определить UDF, который возвращает логический тип, а также не сможете указать SQL-предикаты, которые проверяют логические значения (кроме встроенных логических выражений, таких как EXISTS, IS NULL, и т.д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...