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

  1. #1
    Candidat au Club
    Différence entre SQL Developer et SQLPlus - Script ne fonctionne pas
    Bonjour,

    je suis nouveau et je débute (depuis quelques mois), dans le SQL oracle.
    Je suis "utilisateur" d'une base de donnée, et je cherche a faire ressortir des indicateurs.

    J'ai fais un script qui permet de me sortir, par type de référence, la quantité disponible :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select /*csv*/ conf.ID_REFERENCE,conf.code_gtin, 
    ((select count(*) nb from SN_POOL_PAQUETS where SN_POOL_PAQUETS.code_generation like conf.ID_REFERENCE||'§')* conf.NB_SN_PER_PACKET) Nb_SN, conf.DESCRIPTION from sn_config_ref conf
     
    left outer join sn_pool_paquets pool on pool.id_sn_config_ref=conf.ID_REFERENCE
     
    where (conf.DESCRIPTION like '%ZON%') and conf.ETAT_REFERENCE=512
     
    group by conf.ID_REFERENCE, conf.code_gtin,conf.NB_SN_PER_PACKET,conf.DESCRIPTION
     
    order by conf.ID_REFERENCE asc;



    Cela fonctionne bien en sql developer :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "ID_REFERENCE","CODE","NB","DESCRIPTION"
    183,"0107471131",9900,"Commentaire ZON1"
    531,"0340806229",650400,"Commentaire ZON2"
    ...


    Mais en SQLPlus (je souhaite que utilisé le planificateur de tache pour automatiser la requete), la valeur NB est toujours à 0
    Le select count(*) ne passe pas ... ?

    Bref je comprends pas.


    Merci d'avance.

  2. #2
    Membre expérimenté
    Une question toute bête, tu pointes bien sur la même base avec les deux outils?

    Que renvoi le SELECT suivant sous SQL Developer et SQL *Plus:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT name from v$database;


    Si tu as un message d'erreur disant que la table ou vue n'existe pas, demande à un DBA, si possible , un user avec plus de droits (tu dois pouvoir interroger le dictionnaire de données).
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Candidat au Club
    Oui je pointe sur la même base

    Le resultat de la requete renvoi 48 lignes sur les deux outils, mais toutes les valeurs de la colonne NB sont à 0

    Résultat identique sur les deux :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ORA-00942: Table ou vue inexistante



    J'ai essayé de remplacer mon * conf.NB_SN_PER_PACKET par un + conf.NB_SN_PER_PACKET, et là j'ai bien une valeur, cohérente par rapport à la valeur de NB_SN_PER_PACKET !


    J'en viens à me demander si c'est pas mon § qui plante tout ?


    Merci de ton aide !

  4. #4
    Expert éminent
    Remplace alors le '§' par le chr() correspondant. Ca doit être un problème de NLS sous sqlplus

    Sous sqldev tu fais un ascii('§') pour avoir le bon code ascii
    et tu exécutes la requête suviant (en remplaçant le xxx par la bonne valeur)

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT conf.ID_REFERENCE, conf.code_gtin, 
    (	(SELECT COUNT(*) nb FROM SN_POOL_PAQUETS WHERE SN_POOL_PAQUETS.code_generation LIKE conf.ID_REFERENCE|| chr(xxx) ) 
    	* conf.NB_SN_PER_PACKET) Nb_SN, conf.DESCRIPTION 
    FROM sn_config_ref conf
    		LEFT OUTER JOIN sn_pool_paquets pool ON pool.id_sn_config_ref=conf.ID_REFERENCE
    WHERE conf.DESCRIPTION LIKE '%ZON%' AND conf.ETAT_REFERENCE=512
    GROUP BY conf.ID_REFERENCE, conf.code_gtin,conf.NB_SN_PER_PACKET,conf.DESCRIPTION
    ORDER BY conf.ID_REFERENCE ASC;
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  5. #5
    Candidat au Club
    J'ai testé sans le § et en effet ça marchait...


    Je n'ai pas réussi a faire le ascii('§'), j'ai trouvé le code ascii 167 du § sur internet et ça fonctionne !!


    Merci beaucoup pour ton aide !

  6. #6
    Expert éminent
    Ah oui pardon, désolé j'ai pas été assez précis, suffisait de faire un select
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT ASCII('§') FROM dual


    Pense à mettre le post en résolu
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB

  7. #7
    Candidat au Club
    Ahah en effet ça devait te paraître tellement évident, alors que pour moi en bon galérien ...

    Encore une fois merci beaucoup !

###raw>template_hook.ano_emploi###