Pour plus d'informations sur la manipulation du curseur/comportement Teradata voir page 47 http://www.info.teradata.com/do_redirect.cfm?itemid=062280010
Fondamentalement, l'équivalent OPEN_CUR1%NOTFOUND
d'Oracle dans Teradata est que SQLSTATE
est réglé sur 7362
et la SQLCODE
à '02000'
... pour cela, vous pouvez consulter les pages 49, 76, 192-198, 405 et suivantes. du document ci-dessus.
EDIT - comme par commentaire:
De l'exemple à la page 49
CREATE PROCEDURE sp1 (OUT par1 CHARACTER(50))
BEGIN
DECLARE var1 INTEGER;
DECLARE projcursor CURSOR FOR
SELECT projid, projectdesc
FROM project;
OPEN projcursor;
WHILE (SQLCODE = 0)
FETCH projcursor INTO var1, par1;
END WHILE;
FETCH projcursor INTO var1, par1;
CLOSE projcursor;
END;
Ils utilisent WHILE (SQLCODE = 0)
ce qui signifie essentiellement "alors que tout va bien et les données sont disponibles".
Merci pour votre réponse rapide et le partage de la documentation. J'ai déjà parcouru la documentation, mais je voulais un exemple précis de ce que peut remplacer le curseur non trouvé. Y a-t-il un SQLState qui suffira? – Ali
voir mon EDIT ci-dessus ... Je recommande fortement de lire les parties sur SQLSTATE HANDLERs etc. – Yahia