Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
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 09/11/2007, 20h45   #1
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Par défaut [PRO*C][11g] Erreurs précompilations

Bonsoir,

J'ai installé un client 11g sur ma machine de dev (MS Vista Pro) qui héberge déja 1 serveur 10g et 5 clients (7.3.4, 8.1.7, 9.0.0, 9.2.0 et 10.2.0) afin tester nos applications (certaines utilisent OCI et d'autres PRO*C).

L'installation s'est bien déroulée et les application qui utilisent OCI compilent sans soucis.

Mais la grosse déconfiture viens de PRO*C. Les sources qui sont précompilés sans aucun souci avec les versions de PRO*C 8i à 10g (PRO*C 7.34 ne tourne pas sous Vista) sont refusés par PRO*C 11g.

tous les EXEC SQL .... d'options et de contrôle (connect, enable, ...) passent mais tous les EXEC SQL suivi d'une requête SQL retournent une erreur.

Exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
char *oracle_date_courante()
{
    static char buf[SIZE_ORADATE+1];
 
    EXEC SQL
        SELECT sysdate INTO :buf FROM DUAL;
 
    IF(ORA_SQLERROR())
    {
        oracle_error("sélection date courante");
        buf[0]=0;
    }
 
    RETURN buf;
}
Provoque l'erreur suivante :

Code :
1
2
3
4
5
6
7
8
9
 
Erreur Ó la ligne 105, colonne 2 dans le fichier src\oracle.pc
        EXEC SQL
.1
PLS-S-00000, SQL Statement ignored
erreur sÚmantique Ó la ligne 105, colonne 2, fichier src\oracle.pc:
        EXEC SQL
.1
PCC-S-02346, PL/SQL a trouvÚ des erreurs sÚmantiques
J'ai réinstallé deux fois le client, vérifié toute les nouvelles options de la 11g... C'est réellement incomprémensible !

Voici le fichier de config fourni à PRO*C :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
MODE=ORACLE
DBMS=V7
CODE=ANSI_C
SYS_INCLUDE=C:\Users\vincent\DATA\Dev\Lib\msvt\
INCLUDE=C:\Users\vincent\DATA\Dev\Lib\vr\
INCLUDE=src\
INCLUDE=C:\Users\vincent\DATA\Dev\Lib\vr\c\
INCLUDE=c:\oracle\ora11g\precomp\public\
PARSE=FULL
THREADS=YES
USERID=winrest/fsi@winrest
SQLCHECK=SEMANTICS
J'utilise VS2005, je compile les 4 autres client sans soucis mais avec la 11g, j'ai ce maudit PLS-S-00000...

J'ai essayé en ligne de commande sans plus de réussite...
J'ai essayé avec plusieurs charset et type de retour chariots différent... rien n'y fait !

EDIT (10/11/2007) : Si je passe le SQLCHECK à un niveau plus faible, ces erreurs disparaissent mais comme nos sources comportent des mots clés PL/SQL, PROC*C refuse alors de les précompiler si SQLCHECK n'est pas positionné sur SEMANTICS....
Bon dieu, Oracle nous aurait refilé un PRO*C fouareux ?

Bon, quelqu'un a une idée avant que je me résigne a ouvrir un ticket sur OTN ?
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 13h47   #2
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108

Ben alors, personne n'a esssayé PRO*C de la 11g ?

Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 16h41   #3
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
Le problème de la 11g, c'est que c'est une bêta qui ne le dit pas.

Avez-vous lu http://download.oracle.com/docs/cd/B...at.htm#i634207 ?

Pourquoi n'utilisez-vous pas VS 2000 ou 2003 ?
êtes-vous sûr que la version 2005 est certifiée ?
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 18h44   #4
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Nos projets ont compilé avec PRO*C (7.34 à 10g) depuis des annèes avec VC6 et ensuite avec VS2005 depuis 2 ans !

Cela n'est pas un souci de VS car si je lance PRO*C 11g en ligne de commande, le résultat est le même !


Ce qui me surpend le plus, c'est que c'est vraiment gros comme une maison !

Et je vois pas comment Oracle a pu laisser passer ca ! Ils doivent manquer de testeurs !
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 19h07   #5
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
Avez-vous lu la note 1018121.102 ?
et la doc pré-citée ?
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 19h22   #6
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Citation:
Avez-vous lu la note 1018121.102 ?
?????


Bon, mettons de coté VS... Cela n'est pas le problème...

Si je lance pro*c directement j'ai les mêmes erreurs, donc exit VS

Le souci vient de PRO*C, de son install ou des nouvelles options...
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 19h47   #7
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
Avez-vous essayer de compiler tous les samples fournis par Oracle ? (En 9i, c'était une option de l'install, en 10g il fallait le Companion CD et en 11g, j'ignore où ils se trouvent, j'attend la 11.2 ! )
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 21h31   #8
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Bon, j'ai testé les exemple de proc*c fournis avec la 8i.
J'ai donc utilisé l'exemple de base ($ORACLE_HOME\precomp\demo\proc\sample).

Je modifie le projet pour utiliser le pro*c de la 11g.
Je lance la compilation... tout se passe bien !

Mais ce sample ne fournit aucune option au à pro*c sauf (include=xxx)... Trop simple !

Bon, je rajoute sqlcheck=semantics et userid=x/y@z

ET boum les mêmes erreurs que j'ai avec mes sources!

Donc, il s'agit bien un sacré bug pro*c 11g que je vais remonter dès lundi matin à Oracle !

Donc pour les utilisateurs de pro*c, la 11.1.0.6 n'est pas encore exploitable !
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 21h42   #9
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
mais testez-donc le pro*c de la 11g avec les examples de la 11g !

si ça se trouve, vous y trouverez une nouvelle syntaxe, de nouveaux paramètres...

en même temps, je dis pas que la 11g est mature et fonctionnelle !
je dis juste qu'il faut valider avec les bons exemples...
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 21h53   #10
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
J'ai parcouru les docs pro*c de la 11g -> Rien de bien méchant : Oracle n'a pas réinventé la roue avec pro*c 11g et a juste apporté 2-3 nouveautés, c'est tout !

De plus, si des codes sources qui compilent depuis oracle 7.3.4 -> 10g (avec les mêmes options) ne fonctionnaient plus tout d'un coup sous 11g (sans même qu'Oracle mentionne tout changement notable dans les compatibilités), cela serait suicidaire pour Oracle.

Des milliers d'applis ont été developpées avec pro*c ...


De plus, télécharger 500 Mo de Companion CD pour 1 source Pro*c de 80 lignes qui me donnera le même résultat ? ... NON !

Dès lundi j'ouvre un ticket chez Oracle !

Néanmoins, si quelqu'un pouvait sortir un lapin magique de son chapeau pour que je puisse précompiler, cela m'arrangerai !
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2007, 08h52   #11
Expert Confirmé
 
Avatar de LeoAnderson
 
Inscription : septembre 2004
Messages : 2 942
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 2 942
Points : 2 972
Points : 2 972
IL n'y a pas que les sources qui sont intérêssantes
il y a aussi et surtout le makefile

Et lui, il a changé selon les versions...

Par exemple, sur Solaris, en 9i on avait 2 distributions : 32 ou 64 bits
En 10g, une seule installation pour les 2 modes => nouveaux makefiles !

De toute façon, si vous voulez ouvrir un SR, la 1ère question du support sera : "est-ce que les exemples de la 11g avec les makefile de la 11g fonctionnent ?"

Et un peu de rigueur à la place de magie ça ne nuit pas !
LeoAnderson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2007, 09h18   #12
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
pourquoi parler de makefile ?

la simple commande suffit pour mettre en évidence le souci :

Code :
1
2
 
>$ORACLE_HOME/bin/proc $SOURCE_FILE CONFIG=$CONFIG_FILE
OK... si ca peux rendre le monde meilleur, je vais télécharger le companion CD de la 11g.

Mais encore une fois, c'est pas une histoire de VS, ni de makefile, ni de version 32/64 bits, ...

Non, le souci c'est le binaire pro*c 11g avec l'option 'sqlcheck=semantics' !
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2007, 10h03   #13
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
bon j'ai téléchargé les samples de la 11g qui sont en parti les mêmes que ceux de 8i avec les mêmes dates de fichiers....

Bon, j'ai également posté sur le forum database d'oracle...

A voir...
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web