J'ai une procédure stockée qui a utilisé la commande EXECUTE IMMEDIATE
pour exécuter une très longue chaîne. Comment puis-je supporter une chaîne très longue et retourner les données dans un refcursor?Oracle EXECUTE IMMEDIATE dans un curseur
7
A
Répondre
0
Utilisez 11gR2 et DBMS_SQL.to_refcursor.
12
En supposant que votre SQL ne dépasse pas 32K (comme @Tony Andrews a laissé entendre), vous devriez être en mesure d'utiliser quelque chose comme ceci:
declare
SQL_Text varchar2(32760) := 'select * from dual'; --your query goes here
cur sys_refcursor;
begin
open cur for SQL_Text;
end;
Lorsque vous travaillez avec Ref Curseurs, open-for
peut être directement utilisé , au lieu de execute immediate
.
Questions connexes
- 1. Oracle EXECUTE IMMEDIATE erreur
- 2. Oracle: DBMS_UTILITY.EXEC_DDL_STATEMENT vs EXECUTE IMMEDIATE
- 3. EXECUTE IMMEDIATE dans plsql
- 4. Comment obtenir un enregistrement en utilisant EXECUTE IMMEDIATE?
- 5. question Oracle: execute immédiate
- 6. Oracle: Curseur dans Curseur
- 7. Comment résoudre ORA-00984 lors de l'utilisation de SQL dans EXECUTE IMMEDIATE?
- 8. Oracle PLSQL définissant un curseur à partir d'une variable
- 9. utiliser le curseur oracle dans un sys_refcursor
- 10. Boucle via un curseur explicite dans Oracle
- 11. Oracle PLSQL - Déclare un curseur sur une table inexistante
- 12. Procédures stockées Oracle - Renvoyer un curseur à partir d'une procédure qui ouvre le curseur
- 13. Problème avec Execute immedite
- 14. Oracle ODP.NET Curseur fuite?
- 15. Réf Curseur Type oracle
- 16. converti T-sql curseur sur le curseur oracle: FETCH_STATUS équivalent Oracle curseur
- 17. procédure stockée Oracle - boucle dans le curseur
- 18. Modification d'un curseur Oracle Ref
- 19. Réinitialiser séquence dans oracle 11g
- 20. Comment déboguer Oracle SQL dynamique dans sqlplus?
- 21. Execute UnitTest dans Django
- 22. Execute Listener dans un autre thread
- 23. Afficher la sortie Dynamic EXECUTE dans pl/sql De sqlplus
- 24. Curseur dans un autre curseur
- 25. SQL dynamique dans le curseur
- 26. erreur dans EXECUTE sp_executesql
- 27. Appeler execute() dans AsyncTask
- 28. multiples « exécuter immédiatement » requêtes dans Oracle
- 29. insérer dans le tableau avant de déclarer le curseur
- 30. EXECUTE immédiate et mise à jour SQL
Combien de temps est "très long"? Plus de 32K? –
Quelle version de la base de données? – DCookie