Hello, I got a problem trying to print comments in my report.
Comment are stored in my ORACLE base in a table text_comment in a column where type is a varchar2. Those comments are stored using more than one line. exemple of data : INDICE | TEXTE 1 | TOTO/n 2 | TUTU
So, when I concat my comments i can get something too big for a varchar (more than 4000 char)
In my report Comments are not my details, for each details I have many comments so I concat them.
I manage to concat my comments in one bloc using CLOB. Using this method :
SELECT [...] DBMS_XMLGEN.CONVERT( EXTRACT(xmltype('<?xml version="1.0"?><document>'||XMLAGG(XMLTYPE('<V>'|| DBMS_XMLGEN.CONVERT(COMMENTAIRE_TEXTE_FOOTER.COTE_TEXTE)|| ' </V>') ORDER BY COMMENTAIRE_TEXTE_FOOTER.COTE_INDICE).getclobval()||'</document>'), '/document/V/text()') .getclobval(),1) AS COMMENTAIRE_FOOTER [...] FROM [...] COMMENTAIRE_TEXTE_FOOTER [...]
With this I get a oracle.jdbc.internal.OracleClob object for Ireport.
Using iReport Designer 5.6.0 I read the CLOB Object like this : new BufferedReader(new InputStreamReader(((oracle.jdbc.internal.OracleClob)$F{COMMENTAIRE_FOOTER}).binaryStreamValue())).readLine();
My problem is that when i get my concatened comment, it came as a one line comment.
Exemple : TOTO/nTUTU But I want : TOTO TUTU
Is there a way to keep my line separators throught all the data conversion ?
How to keep line separator with CLOB
in Products
Posted
Hello, I got a problem trying to print comments in my report.
Comment are stored in my ORACLE base in a table text_comment in a column where type is a varchar2.
Those comments are stored using more than one line.
exemple of data :
INDICE | TEXTE
1 | TOTO/n
2 | TUTU
So, when I concat my comments i can get something too big for a varchar (more than 4000 char)
In my report Comments are not my details, for each details I have many comments so I concat them.
I manage to concat my comments in one bloc using CLOB. Using this method :
SELECT
[...]
DBMS_XMLGEN.CONVERT(
EXTRACT(xmltype('<?xml version="1.0"?><document>'||XMLAGG(XMLTYPE('<V>'|| DBMS_XMLGEN.CONVERT(COMMENTAIRE_TEXTE_FOOTER.COTE_TEXTE)|| ' </V>')
ORDER BY COMMENTAIRE_TEXTE_FOOTER.COTE_INDICE).getclobval()||'</document>'), '/document/V/text()') .getclobval(),1) AS COMMENTAIRE_FOOTER
[...]
FROM [...] COMMENTAIRE_TEXTE_FOOTER [...]
With this I get a oracle.jdbc.internal.OracleClob object for Ireport.
Using iReport Designer 5.6.0 I read the CLOB Object like this :
new BufferedReader(new InputStreamReader(((oracle.jdbc.internal.OracleClob)$F{COMMENTAIRE_FOOTER}).binaryStreamValue())).readLine();
My problem is that when i get my concatened comment, it came as a one line comment.
Exemple : TOTO/nTUTU
But I want :
TOTO
TUTU
Is there a way to keep my line separators throught all the data conversion ?
Jérôme