|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
anis Consultant ERP Inscription : avril 2011 Messages : 5 ![]() |
Bonjour tout le monde,
Je suis confronté a un petit problème à la compilation d'une procedure avec SQL*Plus. Voila ci-dessous la procédure avec les deux erreurs : Code sql :
Je vous remercie d'avance pour l'aide que vous allez pouvoir m'apporter. Anis |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 638 ![]() |
bonjour,
dégagez le ";" avant le "SELECT" et mettez des parenthèses autour de votre "SELECT". Et pendant que vous y êtes, utilisez des inner join pour vos jointures Code sql :
|
||
|
|
00
|
|
|
#3 |
![]() ![]() |
Les parenthèses autour du select sont facultatives !
Une bonne mise en page suffit en général. Utilisez également des alias de tables pour faciliter la relecture.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 | ||
anis Consultant ERP Inscription : avril 2011 Messages : 5 ![]() |
j'ai bien enlever le ";" et et toujours ne fonctionne pas.
Après plusieurs test j'ai trouver que le nombre des champs dans l' INSERT et plus grand que dans la SELECT Voila ca fonctionne comme ça! Code sql :
Merci. |
||
|
|
01
|
|
|
#5 | ||
![]() ![]() |
J'espère juste que ce n'est pas pour un de vos clients, un peu de mise en page ne prend que deux minutes à réaliser et c'est tellement plus lisible et maintenable :
Code :
__________________
Email : http://scr.im/waldar |
||
|
11
|
|
|
#6 | ||
anis Consultant ERP Inscription : avril 2011 Messages : 5 ![]() |
bonjour,
j'ai besoin d'ajouter UPDATE OR INSERT si l enregistrement déjà existant je dois faire Update sinon INSERT, a la compilation j'ai l'erreur suivante : 7/3 PL/SQL: SQL Statement ignored 7/10 PL/SQL: ORA-00903: invalid table name si je supprime "UPDATE OR" la procédure ça compile bien. Code :
|
||
|
|
01
|
|
|
#7 |
![]() ![]() |
UPDATE OR INSERT, ça n'existe pas en SQL.
Par contre, vous avez l'instruction MERGE qui réalise cela. Une petite recherche sur ce forum vous donnera de nombreux exemples !
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
UPDATE OR INSERT INTO
On veut bien donner un coup de main mais il y a tout de même un minimum de recherche à faire |
|
|
11
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Tout est une question de goût.. je préfère un code plus compact qu'un insert qui me prend tout l'écran.. et encore dans l'exemple il n'y a que 15 colonnes qu'est ce que ce serait pour une centaine.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
01
|
|
|
#10 | |
![]() Inscription : décembre 2002 Messages : 2 385 ![]() |
Citation:
Par contre je ne suis pas fervent des retours à la ligne intempestifs (chaque colonne du SELECT sur une ligne, les parenthèses sur une ligne, etc), car ça dilue le code sans le rendre spécialement plus lisible, alors que la "compacité verticale" me facilite beaucoup la vie. Mais bien entendu, je préfère un code trop dilué qu'écrit au km. Il faut juste avoir un éditeur un peu intelligent, qui permette de replier les portions de code. Notepad++ est un début dans ce sens, mais pas très au point quand même. (Faudra qu'on se fasse un sondage sur les outils de ce genre, tiens...)
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
10
|
|
|
#11 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Si le code est déjà indenté, c'est déjà fort bien et j'avoue que je n'irais pas imposé ma méthode à tout prix...
Quand je vois le temps que je perds sur du code non indenté, non commenté, non historisé, je place mon combat ailleurs. (Surtout quand c'est ton boss qui l'a produit en mode geek il y a un certain temps !!!)
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#12 | ||
anis Consultant ERP Inscription : avril 2011 Messages : 5 ![]() |
Bonjour,
Lorsque j'ajoute l'instruction case when dans la procédure elle ne fonctionne plus. merci de m'aider pour trouver une solution pour ajouter des conditions dans la procédure: si le champs movsvlcv = RVS alors clasatcd = 'HPRM' sinon clasatcd = 'HPML' Code :
|
||
|
|
01
|
|
|
#13 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Case n'existe pas avant Oracle 9 (qui est assez vieux en fait
|
|
|
00
|
|
|
#14 | |
|
Membre Expert
![]() Sylvain DevidalChef de projets Générix Inscription : février 2010 Messages : 1 062 ![]() |
Citation:
http://thc.org/root/phun/unmaintain.html Après, on comprend mieuxp pourquoi y'avait un ";" qui traînait au milieu et pas assez de champs dans le SELECT. Je suis étonné de ne pas avoir vu un * se balader d'ailleurs |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com