Simple teradata procédure stockée
Le web semble un peu court sur des exemples pour quelque chose qui devrait être tout à fait commun. Un plain Jane exemple de "me faire des enregistrements". C'est mon premier Stockées proc et tout ce que je veux c'est de voir certains dossiers. Pourquoi est-ce si retournement dur? 😉 Je me dis que si je peux obtenir un exemple qui fonctionne, je peux régler ça de là dans quelque chose que je peux vraiment utiliser. Ceci est pris à partir d'un autre exemple que j'ai trouvé sur le web. Ne compile pas car la déclaration de CURSEUR est une erreur de syntaxe d'une certaine sorte.
CREATE PROCEDURE "SCHEMA"."GETRESULTSET (
IN "p1" VARCHAR(30))
DYNAMIC RESULT SETS 1
BEGIN
DECLARE CURSOR cur1 WITH RETURN ONLY TO CLIENT FOR
SELECT partitioninfo FROM SCHEMA.SessionInfo where username = p1;
OPEN cur1;
END;
De toute façon, assurez-vous peut utiliser un indice. J'ai vu un exemple où le CURSEUR a été déclarée séparément à partir du SQL, mais alors il n'y avait pas un exemple qui montre comment récupérer la variable dans le SQL quand il a été déclaré comme un VARCHAR. L'exemple que je suis en train de travailler hors de était assez vieux, mais c'est le meilleur que j'ai pu trouver.
Vous devez vous connecter pour publier un commentaire.
Un Teradata MACRO serait une meilleure solution pour ce que vous avez décrit.
Pendant une procédure stockée peut être utilisée pour accomplir la tâche curseur selon la logique utilisée dans d'autres applications de systèmes de bases de données (Oracle, SQL Server, etc.) peut conduire à de mauvaises habitudes de programmation dans Teradata. Généralement, le traitement de grandes curseurs dans Teradata dégrade les performances. Beaucoup de choses que vous avez utilisé curseur dans d'autres SGBD " sont mieux servis à faire avec JEU de logique où c'est possible.
Cela étant dit, les curseurs peuvent être utilisés avec succès à Teradata pour effectuer certaines des tâches qui exigent de la logique conditionnelle ou SQL dynamique de transformation. J'espère que cette aide et si vous avez un exemple plus concret vous avez besoin d'aide, je serais heureux d'offrir quelques suggestions.
Edit:
Cette DDL pour votre procédure fonctionne sur Teradata 13.10:
Le nom de curseur a pour passer le CURSEUR de mot-clé. PartitionInfo n'est pas une colonne valide sur DBC.SessionInfo. Vous ne savez pas si le "Schéma" est remplacé par MyBatis ou pas, de sorte que vous pouvez avoir à modifier l'instruction SELECT.