|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Étudiant en informatique de gestion Inscription : janvier 2009 Messages : 17 ![]() |
Bonjour,
Je travaille actuellement sur un projet d'export de données (tuples) en PL/SQL. Mon projet est de faire une procédure PL/SQL qui accepte en paramètre un nom de table et qui exporte ses données (par exemple dans un fichier, mais ce n'est pas le problème). Exemple de signature: Code :
PROCEDURE exportData(tableName IN varchar2, schemaName IN varchar2); Même si j'ai pu partiellement avancer en utilisant un pointeur de curseur (REF CURSOR), je n'ai malheureusement pas encore trouvé de moyen de récupérer un type de table de manière dynamique. Auriez-vous une astuce pour ce faire ? Merci d'avance pour vos propositions P.-S: voici un exemple de code que j'ai déjà réalisé Code :
La variable "returned_line" affichée ici est celle qui contiendra chaque ligne retournée par la base de donnée et, par conséquent, celle qui m'intéresse le plus et celle que je suis actuellement incapable de paramétrer correctement. |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() O. JolySupport Inscription : décembre 2010 Messages : 287 ![]() |
Une solution pourrait être d'écrire un sql dynamique qui va pouvoir manipuler une variable de type table%rowtype et exécuter ce SQL dans un execute immediate.
MAIS C'est très difficile à débugger et à maintenir. Il y a beaucoup plus simple pour exorter dans un fichier plat les données d'une table. |
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
|
|
#4 | ||
|
Futur Membre du Club
![]() Étudiant en informatique de gestion Inscription : janvier 2009 Messages : 17 ![]() |
Bonjour,
Merci à vous deux pour vos solutions qui m'ont toutes deux été d'une grande aide. J'ai donc choisi la voie du SQL dynamique avec le package DBMS_SQL. J'avoue qu'il est d'une grande utilité lorsqu'on sait l'utiliser en ce qui concerne la généricité. Pour celles et ceux qui pourraient être confrontés au même problème que moi, voici comment j'ai procédé pour exporter les données d'une table. Notez que j'ai intégré ici la sauvegarde dans un fichier placé dans un répertoire (directory Oracle). Il faut bien entendu procéder à la création de celui-ci et posséder les droits nécessaires pour l'utiliser. J'utilise ici le format d'export CSV. Code :
Cordialement, |
||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com