Bonjour,

Dans un programme C sous AIX, je voudrais enregistrer un texte de plus de 4000 caractéres dans une table oracle contenant un champ CLOB.

J'utilise une variable char[10000] mais mon insert est rejeté par ORACLE.

voici le code de ma fonction :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/*------------------------------------------------------------------*/
/* Fonction d'enregistrement de page dans la base de données   -----*/
/*------------------------------------------------------------------*/
int fx_enregistre_page(int arg_num_page)
{
 int         li_retour;
 char        ls_requete[100000+1];
 
 if (VAR_DEBUG > 0) printf("Entree dans la fonction fx_enregistre_page \n");
 
 li_retour = 0;
 
 sprintf(ls_requete, "insert into out_pages_postscript values(%ld, %d, '%s')", gl_code_etat ,arg_num_page, gs_page_postscript);
 
 
 EXEC SQL prepare insert_page from :ls_requete;
 
 if( sqlca.sqlcode != 0 )
 {
  fprintf(stdout,"Erreur lors du prepare de insert_page :%d\n",sqlca.sqlcode);
 }
 
 EXEC SQL execute insert_page ;
 
 if( sqlca.sqlcode )
 {
  fprintf(stdout,"Erreur lors de l'insertion :%d\n",sqlca.sqlcode);
  EXEC SQL rollback;
 }
 else
 {
  EXEC SQL commit;
 }
Merci de votre aide !