1
我不確定我的代碼出了什麼問題,我正在嘗試創建一個while循環,它將使用在SQL中聲明的遊標來獲取字段(代碼)中的下一個字符。目標是通過循環獲取下一個匹配的字符。然後我想在循環結束時返回結果。目標是與代碼進行部分匹配,如果沒有完全匹配的話。我之前從未使用過遊標,所以我儘可能多地學習使用獲取和遊標。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'是一個固定長度的字符字段,你可能需要''%'||修剪(:代碼)|| '%''。 – Charles
雖然請放棄變形字符,但_bar_符號「|」,並替換||。作爲運營商,以CONCAT作爲運營商。 – CRPence