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 21/04/2011, 09h59   #1
Invité de passage
 
Inscription : avril 2008
Messages : 65
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 65
Points : 3
Points : 3
Par défaut statut invalide d'une fonction

bonjour ma fonction
retourne un statut invalide malgré qu'elle s'exécute normalement

merci de m aider

Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
CREATE OR REPLACE FUNCTION existe_partition
 
(
 
p_table IN varchar2,
 
nom_partition IN varchar2
 
) 
 
RETURN varchar
 
AS
 
--cette fonction permet de vérifier si la partition nom_partition exite dans
 
--la table p-table, si oui répond 'T' sinon 'F'
 
nom_partition varchar2 (50);
 
p_table varchar2(50);
 
begin
 
IF nom_partition IN (SELECT DISTINCT T1.partition_name FROM all_tab_partitions T1
 
WHERE T1.table_name = p_table)
 
then RETURN 'T';
 
else RETURN 'F';
 
end IF;
 
EXCEPTION
 
WHEN NO_DATA_FOUND THEN
 
NULL;
 
WHEN OTHERS THEN
 
RAISE;
 
end existe_partition ;
xavier81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 10h52   #2
Membre éprouvé
 
Avatar de xdescamp
 
Homme Xavier Descamps
Inscription : octobre 2008
Messages : 297
Détails du profil
Informations personnelles :
Nom : Homme Xavier Descamps
Âge : 36
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2008
Messages : 297
Points : 422
Points : 422
Envoyer un message via Skype™ à xdescamp
Une fonction dont le statut est 'INVALID' ne peut pas être exécutée.
Pour obtenir l'erreur de compilation, utiliser la commande SHOW ERROR :
Code :
1
2
3
4
5
6
7
SQL> SHOW error
Erreurs pour FUNCTION EXISTE_PARTITION :
 
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0      PL/SQL: Compilation unit analysis terminated
1/1      PLS-00410: champs en double interdits dans RECORD ou TABLE
Les variables locales ne peuvent pas porter le même nom que les paramètres.

L'instruction suivante provoquera également une erreur :
Code :
1
2
IF nom_partition IN (SELECT DISTINCT T1.partition_name FROM all_tab_partitions T1
WHERE T1.table_name = p_table)
Il faut faire une requête qui prend le nom de la partition dans sa clause WHERE et récupérer le résultat dans une variable.
Ensuite seulement tester la variable.
xdescamp est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web