IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Requête PL/SQL opérateur relationnel non trouvé


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Par défaut Requête PL/SQL opérateur relationnel non trouvé
    Bonjour ,

    Voila à quoi ressemble ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    CREATE OR REPLACE PROCEDURE PS_PUBLICATIONS
    (
    PUB_NO IN PUBLICATIONS.PUB_ID%TYPE,
    CAT_ID IN PUBLICATIONS.PUB_ZON_ID%TYPE,
    ACTIF IN  PUBLICATIONS.PUB_ACT%TYPE,
    L_Mot IN VARCHAR2,
    curs_pub  OUT ref_curseur
    )
    IS
    st NUMBER;
    L_Pos NUMBER;
    ads BOOLEAN;
    chaine VARCHAR2 := '';
    temp_cur ref_curseur;
    BEGIN
     
        IF L_Mot <> '' THEN
            L_Mot := L_Mot || ' ';
            st := 1;
            L_Pos := INSTR(L_Mot,' ');
            ads := FALSE;
            WHILE L_Pos > 0 LOOP
                IF ads = FALSE THEN
                    chaine := chaine || "PUB_LIB LIKE  '%" || SUBSTR(L_Mot, st, L_Pos - st) || "%' OR PUB_TXT LIKE '%" || SUBSTR(L_Mot, st, L_Pos- st) || "%'";
                    ads := TRUE;
                ELSE
                    chaine := chaine || " OR PUB_LIB LIKE '%" || SUBSTR(L_Mot, st, L_Pos - st) || "%' OR PUB_TXT LIKE '%" || SUBSTR(L_Mot, st, L_Pos- st) || "%'" ;
     
                END IF;
                st := L_Pos + 1;
                L_Pos := INSTR(L_Mot,st, ' ');
             END LOOP;
         END IF;    
     
       OPEN temp_cur FOR
        SELECT  PUBLICATIONS.*, 
                ZONES.*, 
                ZONES_1.ZONES_ID AS CAT_SUR_ID, 
                ZONES_1.ZONES_NOM AS CAT_SUR_LIB
        FROM PUBLICATIONS  
        INNER JOIN ZONES ON PUB_ZON_ID = ZONES.ZONES_ID 
        INNER JOIN ZONES ZONES_1 ON ZONES.ZONES_ZON_ID = ZONES_1.ZONES_ID
        INNER JOIN ZONES ZONES_2 ON ZONES_1.ZONES_ZON_ID = ZONES_2.ZONES_ID
        WHERE (PUB_ACT = ACTIF OR ACTIF IS NULL) 
        AND (PUB_ID = PUB_NO OR PUB_NO IS NULL) 
        AND (PUB_ZON_ID = CAT_ID OR CAT_ID IS NULL 
                                 OR ZONES_1.ZONES_ID = CAT_ID 
                                 OR ZONES_2.ZONES_ID = CAT_ID 
                                 OR ZONES.ZONES_ID = CAT_ID)
     
        AND (chaine)                                   
        ORDER BY PUB_DTE_DEB DESC, PUB_ID DESC;
       curs_pub:= temp_cur;
     
    END PS_PUBLICATIONS;
    Mon problème est le suivant, la chaine que je construis avant le SELECT et que je passe dans le WHERE ne fonctionne pas . Je pense que le compilo n'identifie pas le LIKE , y a t il une histoire de caractere d'echappement ? Dois-je creer une fonction a la mano pour decouper cette chaine dans mon AND ?

    Merci d'avance pour vos éventuelles réponses.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    " n'a jamais été un caractère pour déclarer une chaine sous oracle

Discussions similaires

  1. Requête SQL incorrecte sur DELPHI : champ non trouvé
    Par MélanieS dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/08/2013, 20h43
  2. Requête complexe non trouvée
    Par zouheir_1 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 10/05/2007, 14h27
  3. ORA-00920: opérateur relationnel non valide
    Par skanderb dans le forum Langage SQL
    Réponses: 11
    Dernier message: 30/04/2007, 16h08
  4. [RegEx] Requête SQL sur tables non connues à l'avance (regex)
    Par lothar59 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 10h33
  5. Valeur non trouvé dans une requète SQL
    Par Jeankiki dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/12/2006, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo