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 :
Provoque l'erreur suivante :
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 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; }
J'ai réinstallé deux fois le client, vérifié toute les nouvelles options de la 11g... C'est réellement incomprémensible !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Voici le fichier de config fourni à PRO*C :
J'utilise VS2005, je compile les 4 autres client sans soucis mais avec la 11g, j'ai ce maudit PLS-S-00000...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'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 ?
Partager