Bonjour,

En PL/SQL, j'ai déclaré l'appel à une fonction C ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
PROCEDURE DISC(param STRING, result OUT STRING, err_code OUT BINARY_INTEGER)
  AS LANGUAGE C
  NAME "disc"
  LIBRARY C_da
  PARAMETERS (
      param   STRING,
      result STRING,
      err_code INT);
Je l'appelle depuis une autre procédure PL/SQL qui stocke le contenu de "result" dans une variable de type VARCHAR2.

Mon problème c'est que j'ai un scénario où "result" à la sortie de la fonction C contient environ 90000 caractères.
Du coup, la variable VARCHAR2 de ma procédure PL/SQL étant limitée à 32767 caractères, une exception est déclenchée.

La solution est donc d'utiliser le type CLOB. Exact ?
Si oui :
- que devient la déclaration de ma fonction C en PL/SQL ?
- comment écrire dans ma variable CLOB dans le code en C ?
- comment lire correctement le résultat depuis mon code PL/SQL ?

Merci d'avance.