Pour des raisons de débogage, j'aimerais pouvoir "TO_CHAR
" une table Oracle PL/SQL en mémoire. Voici un exemple simplifié, de ce que je voudrais faire:TO_CHAR d'un Oracle TABLE PL/SQL type
DECLARE
TYPE T IS TABLE OF MY_TABLE%ROWTYPE INDEX BY PLS_INTEGER;
V T;
BEGIN
-- ..
-- Here, I'd like to dbms_output V's contents, which of course doesn't compile
FOR i IN V.FIRST .. V.LAST LOOP
dbms_output.put_line(V(i));
END LOOP;
-- I want to omit doing this:
FOR i IN V.FIRST .. V.LAST LOOP
dbms_output.put_line(V(i).ID || ',' || V(i).AMOUNT ...);
END LOOP;
END;
Cela peut-il être réalisé simplement? La raison pour laquelle je demande est parce que je suis trop paresseux pour écrire ce code de débogage encore et encore, et je voudrais l'utiliser avec n'importe quel type de table.
pourquoi ne pas écrire une fonction d'aide « print_table » qui encapsule la sortie mise en forme que vous souhaitez, puis utilisez autant de fois que vous le souhaitez ... – tbone
@tbone: Pour tout type de table? Cela peut-il être fait avec le type de données 'ANYTYPE' d'Oracle? –
ne pensait pas la fonction complètement générique pour tous les types, mais c'est une question intéressante ... laissez-moi nouilles dessus, je pense que vous êtes sur la bonne voie avec anydata/anytype – tbone