Paramètre CLOB dans un appel d'une fonction C
Bonjour,
En PL/SQL, j'ai déclaré l'appel à une fonction C ainsi :
Code:
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.