Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
992 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL/SQL Oracle] If qui s'appuie sur un select ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PL/SQL Oracle] If qui s'appuie sur un select ?

n°1847005
Piksou
Posté le 04-02-2009 à 10:45:06  profilanswer
 

Hello,
 
j'ai besoin dans un script PL/SQL d'exécuter un INSERT uniquement si une code (lu par un select) se termine par une valeur donnée.
 
je tente un truc genre  

IF (select truc from lala group by truc like '%27') THEN
    INSERT
....
 
END IF


 
mais c'est l'échec à la compilation de la procédure à cause du select qui semble interdit :/
C'est impossible de faire ça ?
 
Merci :jap:


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
mood
Publicité
Posté le 04-02-2009 à 10:45:06  profilanswer
 

n°1847010
skeye
Posté le 04-02-2009 à 10:59:39  profilanswer
 

tu mets le résultat du select dans une variable, et tu testes cette variable...non? [:petrus dei]


---------------
Can't buy what I want because it's free -
n°1847011
olivthill
Posté le 04-02-2009 à 11:02:34  profilanswer
 

Avec les versions du PL/SQL que je connais, il faut mettre le résultat d'un select dans une ou plusieurs variables. De plus, comme il est possible que la requête renvoie plusieurs enregistrements, il faut utiliser un cursor.
Bon courage !

n°1847020
casimimir
Posté le 04-02-2009 à 11:46:50  profilanswer
 

olivthill a écrit :

Avec les versions du PL/SQL que je connais, il faut mettre le résultat d'un select dans une ou plusieurs variables. De plus, comme il est possible que la requête renvoie plusieurs enregistrements, il faut utiliser un cursor.
Bon courage !


 
pour contourner le truc:
tu testes si ca te retourne 0/!0
 

Code :
  1. select count(*) into ta_variable
  2. from lala
  3. where truc like '%27'

n°1847038
Piksou
Posté le 04-02-2009 à 12:16:38  profilanswer
 

Alors ya une seule valeur.
Le pb c'est que quand j'affecte avec:
 

create or replace package body plop as  
PROCEDURE proc IS
v_temp NUMBER := select truc from table group by truc;
BEGIN
 
...
 
 
IF v_temp like '%10' THEN
 
...
 
 
END IF


 
c'est pareil :(  
J'ai une erreur "encountered the symbol select" :(
Ya une seule valeur avec le group by :jap:


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°1847039
Piksou
Posté le 04-02-2009 à 12:17:19  profilanswer
 

casimimir a écrit :

 

pour contourner le truc:
tu testes si ca te retourne 0/!0

 
Code :
  1. select count(*) into ta_variable
  2. from lala
  3. where truc like '%27'



select into ça marche pas que pour les tables en destination ?

Message cité 2 fois
Message édité par Piksou le 04-02-2009 à 12:17:28

---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°1847045
skeye
Posté le 04-02-2009 à 12:22:17  profilanswer
 

Piksou a écrit :


select into ça marche pas que pour les tables en destination ?


cursor.


---------------
Can't buy what I want because it's free -
n°1847084
casimimir
Posté le 04-02-2009 à 13:56:14  profilanswer
 

Piksou a écrit :


select into ça marche pas que pour les tables en destination ?


 
si tu dois traiter quelque chose qui te retourne l'équivalent de plusieurs ligne que tu as besoin de traiter différement alors effectivement un curseur, si tu as juste besoin de savoir si ca te retourne une valeur ou pas un into marche bien.
 
table en destination no comprende

n°1847108
Piksou
Posté le 04-02-2009 à 14:17:24  profilanswer
 

c'était une valeur
j'avais cru piger que les select into n'admettaient que des tables après le into, non des variables.
 
je m'en suis sorti avec une variable, merci :)


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
n°1847123
casimimir
Posté le 04-02-2009 à 14:28:11  profilanswer
 

ne pas confondre un insert into qui est du sql avec un select ... into qui est du pl/sql

mood
Publicité
Posté le 04-02-2009 à 14:28:11  profilanswer
 

n°1847132
Piksou
Posté le 04-02-2009 à 14:32:46  profilanswer
 

:jap:
Mais j'avais jamais vu de insert into avant aujourd'hui (je suis un codeur en carton et en plus je connais très mal PL/SQL ;) )

 

Merci encore :jap:


Message édité par Piksou le 04-02-2009 à 14:32:52

---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL/SQL Oracle] If qui s'appuie sur un select ?

 

Sujets relatifs
[ASP.NET] Modiifer le select d'un DataSource / GridViewprobleme requet SQL
oracle forms 10g: impression et désactivation des zones textesQuestions sur week planner PHP/SQL
[VBA]Méthode Select... problèmeproblème requete sql sous oracle
oracleoracle cache query le vider
[RESOLU] [SQL Server] Restaurer un backup dans une base différente[php] wamp & oracle
Plus de sujets relatifs à : [PL/SQL Oracle] If qui s'appuie sur un select ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR