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

Interfaces de programmation Oracle Discussion :

[PRO*C] pro*c pour les bleus


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Par défaut [PRO*C] pro*c pour les bleus
    bonjour à tous et bon début de semaine,

    voilà, je suis débutant avec pro*c, et je ne dispose malheuresemet pas du temps nécessaire pour parcourir toute la doc sur pro*c, bien qu'elle soit claire et fournie.

    je cherche à réaliser un code en C qui collecte certaines données sur certaines bases et stocke ces données dans un fichier csv ( = données séparées par des ; lignes séparées par des sauts de lignes). Les données à collecter se chiffrent en dizaines de millions.

    la seule fonction sql que j'aurai donc à exécuter sera un SELECT, peut-être avec quelques joins et des where.

    Comment me conseilleriez-vous mon approche? Devrais-je stocker les résultats dans des variables temporaires, pour ensuite les écrire dans un fichier, ou alors écrire directement dans le fichier à la volée?

    Si je fais un SELECT into :a, et que dans :a vont se retrouver des millions de varchar par exemple, la ram de la machine ne risque-t-elle pas de ne pas suivre?

    je vais sûrement recevoir des réponses du type "tout est dans la doc, lis-là". Croyez-moi, je suis dessus. Mais j'aimerai gagner du temps. Ce n'est pas par paresse.

    je vous remercie de vos conseils et axes de recherche.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611

  3. #3
    Membre confirmé Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Par défaut
    hello again,

    j'en suis au stade "j'essaie d'exécuter ma première commande à l'aide de pro*c, donc je fais un main qui lance la fonction "testSQL"."

    je précompile donc mon fichier testSQL.pc avec la commande "proc testSQL.pc", qui me sort un fichier "testSQL.c".

    Puis je fais "gcc main.c testSQL.c" et là il me crache l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    testSQL.c:169: `sqlca' undeclared (first use in this function)
    testSQL.c:169: (Each undeclared identifier is reported only once
    testSQL.c:169: for each function it appears in.)
    mon main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
     
    void testSQL();
     
     
     
    int main()
    {
            testSQL();
            return 0;
    }
    mon fichier testSQL.pc :

    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
    #include <string.h>
     
     
    void testSQL()
    {
            char logpass[] = "login/motdepasse";
     
            EXEC SQL BEGIN DECLARE SECTION;
     
            EXEC SQL END DECLARE SECTION;
     
            EXEC SQL CONNECT :logpass IN SYSDBA MODE;
     
            EXEC SQL SELECT COUNT(*)
            FROM svctecacc;
     
            exit();
    }
    où est l'erreur? apparament le fait de précompiler testSQL.pc fait utiliser une valeur nommée sqlca, mais apparament il ne la trouve pas/déclare pas. Est-ce normal?

    j'ai aussi des problèmes avec la gestion d'erreurs.

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <oraca.h>
    #include <sqlca.h>
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  5. #5
    Membre confirmé Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    testSQL.c:143: oraca.h: No such file or directory
    testSQL.c:144: sqlca.h: No such file or directory

  6. #6
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    ben p'tet bien qu'il faudrait penser à inclure le réportoire d'include PRO*C aux options de ton projet... Ton compilo ne peut pas devenir ou ils sont par magie !!

    C'est :

    $ORACLE_HOME\precomp\public\
    ps : Et aussi renseigner avec la variable INCLUDE que tu passes à proc.exe pour précompiler.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/04/2006, 15h13
  2. [VB6] Pour les pro de VB, recup et modifier le workgroup
    Par manshivas dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/03/2006, 18h52
  3. Réponses: 3
    Dernier message: 14/12/2005, 23h08

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