62 votes

Comment interroger une colonne CLOB dans Oracle ?

J'essaie d'exécuter une requête qui comporte quelques colonnes de type CLOB. Si j'exécute la requête normalement, tous ces champs ont juste (CLOB) comme valeur.

J'ai essayé d'utiliser DBMS_LOB.substr(column ) et je reçois l'erreur

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Comment puis-je interroger la colonne CLOB ?

0voto

Kapitula Alexey Points 366

Pour les grandes sélections CLOB, on peut également utiliser les CLOB :

SELECT dbms_lob.substr( column_name, dbms_lob.getlength(column_name), 1) FROM foo

-1voto

Himanshu sharma Points 2156

Pour ajouter à la réponse.

declare
v_result clob;
begin
---- some operation on v_result
dbms_lob.substr( v_result, 4000 ,length(v_result) - 3999 );

end;
/

Sur dbms_lob.substr

first parameter es clob que vous voulez extraire .

Second parameter est la longueur de clob que vous voulez extraire.

Third parameter est le mot dont vous voulez extraire.

Dans l'exemple ci-dessus, je sais que la taille de mon bloc est supérieure à 50000, donc je veux les 4000 derniers caractères.

-3voto

Scott Points 3

Si vous utilisez SQL*Plus, essayez ce qui suit...

set long 8000

select ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X