En Tsql je peux exécuter une procédure stockée dans l'Analyseur de requêtes et visualiser le contenu d'une requête ResultSet là fenêtre de l'analyseur sans savoir quoi que ce soit au sujet de la structure de la requête (tables, colonnes, ...)Comment afficher le contenu d'un resultset dans Toad à partir d'une procédure stockée avec un nombre inconnu de colonnes?
échantillons --Tsql exec myproc parm1, parm2, parm3
Maintenant je travaille avec PLsql et Toad (que je suis relativement nouveau chez Toad). J'ai besoin de voir le contenu d'un jeu de résultats d'une procédure stockée alambiquée, et je ne sais pas quel est le nombre de colonnes - et encore moins leurs types de données (ce proc est composé de plusieurs sous-requêtes bizarres - que je peux voir individuellement , mais ils sont pivotés, et le nombre de colonnes varie dans le résultat final). Comment puis-je voir le contenu de ce résultat dans Toad quand j'exécute la procédure quand je ne sais pas combien de colonnes il y a ou leurs types de données? Ci-dessous est le code que j'ai rassemblé pour voir le contenu d'un ensemble de résultats de procédures stockées où je sais combien de colonnes il y a et leurs types de données à l'avance. Dans mon exemple de code ci-dessous, j'utilise un sys_refcursor que j'ai appelé x_out et je crée également une table temporaire pour stocker le contenu du resultset pour une visualisation supplémentaire. Est-ce que je peux faire ceci quand je ne sais pas combien de colonnes il y a dans le resultset? Comment faire cela avec PLsql - Toad?
create global temporary table tmpResult (fld1 number, fld2 varchar(50), fld3 date);
declare
x_out sys_refcursor;
tmpfld1 number;
tmpfld2 varchar2(50);
tmpfld3 date;
BEGIN
myschema.mypkg.myproc(parm1, parm2, x_out);
LOOP
FETCH x_out INTO tmpfld1, tmpfld2, tmpfld3;
DBMS_OUTPUT.Put_Line ('fld1:-- '||tmpfld1||': fld2:-- '||tmpfld2||': fld3:-- '||tmpfld3);
-- I also insert the result set to a temp table for additional viewing of the data from the stored procedure
Insert Into tmpResult values(tmpfld1, tmpfld2, tmpfld3);
EXIT WHEN x_out%NOTFOUND;
END LOOP;
END;
Quelle version de crapaud? –
supposé être 11g –