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...)
# bizarres tes sprintf ?
Posté par BAud (site web personnel) . En réponse au message Oracle Pro*c. Évalué à 3.
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...)