Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 26/07/2011, 11h22   #1
Invité de passage
 
M M
Inscription : décembre 2009
Messages : 43
Détails du profil
Informations personnelles :
Nom : M M

Informations forums :
Inscription : décembre 2009
Messages : 43
Points : 4
Points : 4
Par défaut Requête sql dans pl/sql

Bonjour,
voila, j'ai des scripts sql de corrections de bugs dans une base.
j'aimerai mettre en place un script pl/sql qui vérifie sur toutes les bases si le même bug existe et si c'est le cas exécuter les script sql.

je vous demande pas le code , mais juste des idées de bases pour démarrer.
merci
binbinou69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 13h19   #2
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Salut !

Je dirais qu'il te faut piloter la chose par du script (shell par exemple) :
- Tu te mets un fichier de config avec les bases + identifiants
- Tu fais une boucle dans ton script shell ou tu traites chaque base
- Tu lances avec SQL*Plus le script (bloc PL/SQL) qui repère les erreurs
- Ce script retourne une valeur à ton SHELL
- En fonction de cette valeur, tu lances ou non le correctif via SQL*PLUS
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h18   #3
Invité de passage
 
M M
Inscription : décembre 2009
Messages : 43
Détails du profil
Informations personnelles :
Nom : M M

Informations forums :
Inscription : décembre 2009
Messages : 43
Points : 4
Points : 4
Citation:
Envoyé par pacmann Voir le message
Salut !

Je dirais qu'il te faut piloter la chose par du script (shell par exemple) :
- Tu te mets un fichier de config avec les bases + identifiants
- Tu fais une boucle dans ton script shell ou tu traites chaque base
- Tu lances avec SQL*Plus le script (bloc PL/SQL) qui repère les erreurs
- Ce script retourne une valeur à ton SHELL
- En fonction de cette valeur, tu lances ou non le correctif via SQL*PLUS
merci pour votre réponse.
voici mes premiers pas.
fichier de configuration:
config.txt
user/pwd
premier fichier sh
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
#!/bin/bash
#Lecture du fichier de configuration
clear
while READ ligne
	do
	SET $(echo $ligne)
	export nomBase=$(eval echo $1)
	export user=$(eval echo $2)
	export password=$(eval echo $3)
	echo -e "nomBase=$nomBase\nuser=$user\npassword=$password\n"
 
 
       # --- Connexion à SQLPLUS et Lancement 
          sqlplus $user/$password @existe_bug.sql.existe_bug(?,?)
done < config.txt
exit;
le fichier existe_bug en pl/sql
Code :
1
2
3
4
5
6
7
 
FUNCTION existe_bug(?,?) RETURN BOOLEAN IS
       LN$resultat BOOLEAN;
    BEGIN
       ?
 END;
 /
Le dernier fichier n'est pas encore fini car je suis bloqué sur le pb suivant:
comment savoir si une table de la base est susceptible de contenir le bug.
Faut-il parser la requête sql pour extraite les tables et les colonnes( c'est du lourd)?

merci
binbinou69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 09h52   #4
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
Euh, ben ça dépend de ce que tu appelles un bug ?

Je suppose que ça doit être une contrainte quelconque qui n'est pas "implémentée" au niveau base (genre champs alpha qui doivent contenir du numérique, plages de valeurs, nullité, ...)

=> A toi de faire la liste de ce que tu veux contrôler
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 23h25   #5
Invité de passage
 
M M
Inscription : décembre 2009
Messages : 43
Détails du profil
Informations personnelles :
Nom : M M

Informations forums :
Inscription : décembre 2009
Messages : 43
Points : 4
Points : 4
Citation:
Envoyé par pacmann Voir le message
Euh, ben ça dépend de ce que tu appelles un bug ?

Je suppose que ça doit être une contrainte quelconque qui n'est pas "implémentée" au niveau base (genre champs alpha qui doivent contenir du numérique, plages de valeurs, nullité, ...)

=> A toi de faire la liste de ce que tu veux contrôler
merci, je vais réfléchir.
binbinou69 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 07h37.


 
 
 
 
Partenaires

Hébergement Web