Pagination en SQL fonctionne sur Ubuntu mais pas sur Windows
Bonjour,
Je cherche à faire un systeme de pagination en SQL et je suis tombé sur un article ici https://community.intersystems.com/post/scrollable-resultset-pagination-sample#comment-166186
J'ai essayé d'appliquer la solution, mais j'ai un bug assez particulier et je me demandais si quelqu'un pouvait m'éclairer. Sur mon environnement de dev local aucun soucis, par contre pour la même requete en environnement de preprod j'ai cette erreur:
<UNDEFINED>newvar+3^%qaqcasl *%classname
la requete que j'effectue:
SELECT * FROM (SELECT _DATA.ID, ROW_NUMBER() _RN, COUNT(*) _COUNT FROM XX.srsshiptype _DATA ) WHERE _RN BETWEEN 1 and 1000
La seule piste que j'ai serait peut-etre la une difference au niveau de la version d'IRIS, je suis en 2023.1 conteneur Ubuntu en local, et 2022.1 Windows sur l'environnement de preprod.
Mais comme la solution date de 2021 je me dit qu'elle devrait fonctionner en 2022.1
Comments
Salut,
As tu essayé d'ajouter la commande over + un ordre dans ton ROW_NUMBER() ?
C'est recommandé car sinon le résultat peut être aléatoire.
SELECT * FROM (SELECT _DATA.ID, ROW_NUMBER() over (order by _DATA.ID) _RN, COUNT(*) _COUNT FROM XX.srsshiptype _DATA ) WHERE _RN BETWEEN 1 and 1000
Salut, en effet c'était bien le OVER qui manquait
le bug apparaissait très spécifiquement uniquement quand il y'a un WHERE derriere
et sur version 2022.1
Merci beaucoup