Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2007, 11h29   #1
Membre du Club
 
Inscription : janvier 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 114
Points : 51
Points : 51
Envoyer un message via MSN à thegreatbato
Par défaut Variable dans une view ou autre idée

Bonjour, je dois quotidiennement lancer une requête SQL sur un serveur Oracle.

Avant, on utilisais le spool pour mettre les résultats dans un fichier texte. Puis ici je suis en train de tester pour grâce à un driver ODBC récupérer directement le résultat de cette requête dans un fichier Excel (parce qu'avant il fallait copier le texte en question à partir du FTP, puis l'importer en Excel et le découper).

J'ai donc crée une View sur le serveur, que j'arrive a importer dans Excel, mais le problème est que dedans il y avait une variable. Celle-ci ne fonctionne désormais plus (j'ai du mettre une constante en dur pour la faire fonctionner) mais ça peut pas aller comme ça.

Alors est-ce que quelqu'un aurait une solution à me proposer ?


Merci
thegreatbato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 11h45   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Bonjour

Un exemple concret de vos requêtes (avant / après) serait le bienvenu.
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 12h15   #3
Membre du Club
 
Inscription : janvier 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 114
Points : 51
Points : 51
Envoyer un message via MSN à thegreatbato
Avant

Code :
1
2
3
4
5
6
7
spool reporting.txt;
 
SELECT *
FROM clients
WHERE clients.id = '&client';
 
spool off;
Maintenant

test avec la variable :

Code :
1
2
3
SELECT *
FROM clients
WHERE clients.id = '&client';
Mais le fichier excel est vide donc

Code :
1
2
3
SELECT *
FROM clients
WHERE clients.id = 'un_numero';

Et là ça marche mais simplement pour ce client

(Bon évidemment j'ai pas mis tout le code c'est une version très très simplifiée mais le principe est là)
thegreatbato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 14h27   #4
Membre du Club
 
Inscription : janvier 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 114
Points : 51
Points : 51
Envoyer un message via MSN à thegreatbato
Personne n'aurait une idée ?

Est-ce qu'on peut récupérer un résultat d'une procédure stockée par un driver ODBC (pour lire des données sur Excel) ??
thegreatbato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 15h01   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu as transmis la variable comment ? l'écriture &variable est spécifique à SQL*Plus. Comment tu récupères les données d'Oracle dans Excel ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2007, 11h00   #6
Membre du Club
 
Inscription : janvier 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 114
Points : 51
Points : 51
Envoyer un message via MSN à thegreatbato
J'ai installé Oracle Client, ce qui me permet d'utiliser le driver ODBC d'oracle
et donc de me connecter au serveur Oracle avec Excel (ou n'importe quelle autre application cliente supportant l'ODBC)

Si comme tu dit l'écriture de la variable &variable est spécifique à SQL plus que faire pour utiliser SQL*plus dans Excel ? ou bien aurait tu une autre idée pour transmettre un paramètre a la View ? ou autres choses pour résoudre mon problème ?
thegreatbato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 09h13   #7
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
comment exécutes-tu la requête dans Excel ? Tu passes par du VBA non ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 10h29   #8
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
une variable dans une vue se fait typiquement avec un contexte.

il y a un exemple dans la doc
http://download.oracle.com/docs/cd/B...htm#sthref6073
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2007, 10h35   #9
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Dans ce cas il faut pouvoir initialiser le contexte, ce qui n'est pas forcément simple via ODBC... mais c'est une bonne piste en effet
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 09h09   #10
Membre du Club
 
Inscription : janvier 2006
Messages : 114
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 114
Points : 51
Points : 51
Envoyer un message via MSN à thegreatbato
Oulala ça m'a l'air assez compliqué tout ça Mais bon je vais lire tout ça et puis je vais essayer...

Mais sinon plus simplement. Est-ce possible de créer un VBA qui :

- Crée le driver ODBC si il n'est pas crée (pas indispensable si trop compliqué)
- Demande le mot de passe pour la base de données
- Propose une form qui demande une variable (choix du client en question)
- Quand on clique sur un bouton génère une requête et récupère le résultat dans la feuille

Et ce VBA devrait être "importable" n'importe quelle feuille => Au niveau global d'Excel => pour qu'il puisse être utilisable facilement par plusieurs utilisateurs => plusieurs pc


Pour le code VB normalement pas de problème mais quelques pistes me seraient bien utiles,
Mon problème réside plus pour le 1er point et le 4ème ainsi que "importable"


Merci pour vos réponses ça m'apprends beaucoup
thegreatbato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 09h22   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu peux t'inspirer de ceci : http://www.developpez.net/forums/sho...79&postcount=2

avec ODBC ça fonctionne quasiment pareil qu'avec object OLE, regarde du coté du forum VBA Excel par exemple : http://www.developpez.net/forums/sho...d.php?t=447238
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web