DB2 SQL Ошибка при создании новой функции с параметрами и возвращении таблицы - PullRequest
0 голосов
/ 05 апреля 2020

Я написал простой запрос, и он работает. Я хочу сделать это функцией. Но это дает мне ошибку -

SQL Error [42601]: An unexpected token "DISTINCT" was found following "BEGIN
 RETURN SELECT".  Expected tokens may include:  "(".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.26.14

Функция -

CREATE OR REPLACE FUNCTION CSE532.NEIGHBOR_LIST (IN_ZIP VARCHAR(5))
RETURNS TABLE (NEIGHBOR VARCHAR(5))
BEGIN
    RETURN SELECT DISTINCT substr(b.GEOID10,1,5) FROM CSE532.USZIP a, CSE532.USZIP b WHERE db2gse.st_intersects(a.SHAPE,b.SHAPE) = 1 AND substr(a.GEOID10,1,5) = IN_ZIP;
END

Все столбцы существуют

1 Ответ

1 голос
/ 07 апреля 2020

Удалите НАЧАЛО и КОНЕЦ

CREATE OR REPLACE FUNCTION CSE532.NEIGHBOR_LIST (IN_ZIP VARCHAR(5))
RETURNS TABLE (NEIGHBOR VARCHAR(5))
    RETURN SELECT DISTINCT substr(b.GEOID10,1,5) FROM CSE532.USZIP a, CSE532.USZIP b WHERE db2gse.st_intersects(a.SHAPE,b.SHAPE) = 1 AND substr(a.GEOID10,1,5) = IN_ZIP

или используйте НАЧАЛО АТОМИ C

CREATE OR REPLACE FUNCTION CSE532.NEIGHBOR_LIST (IN_ZIP VARCHAR(5))
RETURNS TABLE (NEIGHBOR VARCHAR(5))
BEGIN ATOMIC
    RETURN SELECT DISTINCT substr(b.GEOID10,1,5) FROM CSE532.USZIP a, CSE532.USZIP b WHERE db2gse.st_intersects(a.SHAPE,b.SHAPE) = 1 AND substr(a.GEOID10,1,5) = IN_ZIP;
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...