J'ai besoin de modifier une macro de la façon dont un paramètre peut être passé pour contrôler la taille maximale de l'ensemble de résultats.Dynamic "SELECT TOP: paramètre" dans Teradata Macro
Mon idée était cette SQL:
REPLACE MACRO myMacro
(maxRows INTEGER DEFAULT 100)
AS
(
SELECT TOP :maxRows
FROM myTable;
);
Mais tout ce que je reçois le message:
[SQLState 42000] Erreur de syntaxe, quelque chose attendu comme un nombre entier ou décimal compris entre 'top' et ':'.
Ce n'est pas possible pour moi de le faire d'une autre manière qu'une macro.
Comment puis-je faire cela?
Une autre option est SQL dynamique dans une procédure stockée en utilisant la fonction DBC.SysExecSQL(). Toutefois, l'utilisation de ROW_NUMBER() dans ce cas affecte les résultats renvoyés. Dans votre requête d'origine, vous n'avez pas spécifié un ensemble ordonné. –
Je crois que '<' devrait être '<='. – lins314159
THX. Je l'ai changé dans le code ci-dessus. – Lars