• # bizarres tes sprintf ?

    Posté par (site web personnel) . En réponse au message Oracle Pro*c. Évalué à 3.

    man sprintf te donne :
    int sprintf (char *str, const char *format, ...);



    dans la boucle for, ici l'utilisation est bonne :
    sprintf(table_fqn, "%s.%s", owner_name, table_record);

    mais là :
    sprintf(GrantRoleToUser, "EXEC SQL GRANT %s",role_name ," TO %s", owner_name);
    j'ai un doute... : ta chaîne format ne contient qu'un %s, pas 3...

    tu peux rajouter des #ifdef DEBUG
    printf("debug : %s\n", GrantRoleToUser);
    #endif

    ou mieux des : if (debugLevel > 2 ) {
    printf("debug : %s\n", GrantRoleToUser);
    }


    D'autre part, tout ce qui concerne le modèle de données (création de table, octroi de droits...) a plus sa place d'un un .sql que dans un programme Pro*C... après tu crées les .sh (ou .bat ;-) ) qui vont bien pour exécuter sqlplus login/mdp@base creation_tables.sql
    (et ne pas croire non plus qu'un script exécuté dans toad va bien passer dans Sql*Plus...)