Я не уверен, что не так с моим кодом, я пытаюсь сделать цикл while, который будет отображать следующие символы в поле (код) с помощью курсора, который объявлен в SQL. Цель состоит в том, чтобы получить следующие совпадающие символы с циклом. Затем я хочу вернуть результаты в конце цикла. Цель состоит в том, чтобы сделать частичное совпадение с кодом, если нет точного соответствия. Раньше я никогда не использовал курсоры, поэтому я старался как можно больше узнать об использовании fetch и курсоров.SQL FETCH, Cursors и RPG
EXEC SQL
SELECT field FROM file
WHERE field = :code
UNION
DECLARE UserInput CURSOR FOR
SELECT field FROM file
WHERE field LIKE '%' || :code || '%'
ORDER BY field ASC
OPEN UserInput
FETCH NEXT FROM UserInput
BEGIN
DO WHILE <> %EOF
FETCH NEXT FROM UserInput
END
CLOSE UserInput
DEALLOCATE UserInput;
Большое спасибо, это поможет мне понять это намного лучше! –
еще одна вещь, предполагая, что 'CODE' и' FIELD' являются символьными полями длины длины, вам, вероятно, нужно ''% '|| trim (: code) || '%' '. – Charles
Хотя, пожалуйста, откажитесь от символов варианта, символа _bar_ «|» и замените || как оператор, с оператором CONCAT as. – CRPence