Je vais encore avec quelques PLSQL ..PLSQL retour valeurs
Je veux savoir, s'il y a quelque façon que je peux utiliser la fonction suivante comme une sélection sans avoir à en faire une fonction ou d'une procédure (donc je peut voir le code du script où il est contenu).
Le code serait comme:
DECLARE
outpt VARCHAR2(1000) := '';
flow_rI VARCHAR2(50);
CURSOR flow_r IS
select flow_run_id
from table
where CREATED_DATE < sysdate - 32
and rownum < 10
order by 1 desc;
BEGIN
OPEN flow_r;
LOOP
FETCH flow_r INTO flow_rI;
EXIT WHEN flow_r%notfound;
BEGIN
outpt := outpt || ',' || flow_rI;
EXCEPTION
WHEN no_data_found THEN
dbms_output.Put_line(outpt);
END;
END LOOP;
dbms_output.Put_line(outpt);
outpt := '';
CLOSE flow_r;
END;
L'idée est simple, je veux juste obtenir une série de codes de mon table
mais ayant les résultats mis en forme comme "1234,2434,424,45,767,43"
genre de chose, plutôt que le résultat de la table à partir d'une requête. Il sera utilisé plus tard dans le code à diverses fins, y compris d'autres requêtes où je pourrais simplement faire un in ([variable with that string])
.
Chose est qu'en utilisant le dbms_output.Put_line(outpt);
, je ne peux pas y accéder à partir de ma couche d'application et semble que dans plsql je ne peux pas utiliser le return
sans le transformer en une fonction.
Quelqu'un aurait-il une idée? Il n'a pas besoin d'être un PlSql comme ça tant que je peux avoir le code entier dans le script.
merci!
f.
ps .: oui, je sais que j'ai un reste "," au début de la chaîne -_- – filippo