Bonjour,

Je travaille avec Oracle 10. Sur Oracle 9 avec la même fonction je n avais pas ce probleme.
J'ai un problème avec la fonction : OracleUtils.createTemporaryCLOB dans le code suivant :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public void ajoutEnvoiDocument(EnvoiDocumentVO pEnvoiDocumentVO, String vTexte) {
		sLogger.debug("EnvoiDocumentServiceImpl : Lancement de l'ajoutEnvoiDocument");
		sLogger.debug("vTexte :" + vTexte);
		// Start the session and transaction.
		mSessionManager.beginMediWebSession();
		mSessionManager.beginTransaction();
		Connection vConnection = null;

		try {
			vConnection = mSessionManager.getConnection();
			CLOB vNewTexteCrEntier = null;

			// SCHA Mantis 1128 30/09/2009: correction erreur dans le test => &&
			// !"".equals(vTexte) au lieu de && "".equals(vTexte)
			if (vTexte != null && !"".equals(vTexte)) {
				vNewTexteCrEntier = OracleUtils.createTemporaryCLOB(vConnection, false, CLOB.DURATION_SESSION);
				DataOutputStream dos;
				dos = new DataOutputStream(vNewTexteCrEntier.getAsciiOutputStream());

				sLogger.debug("vTexte.toString():" + vTexte.toString());
				dos.writeBytes(vTexte.toString());
				dos.flush();
				dos.close();
				sLogger.debug("DataOutputStream vNewTexteCrEntier :" + clobStringConversion(vNewTexteCrEntier));

				pEnvoiDocumentVO.setEdHprimCrTexte(vNewTexteCrEntier);
				
				sLogger.debug("pEnvoiDocumentVO.getEdHprimCrTexte :" + clobStringConversion(pEnvoiDocumentVO.getEdHprimCrTexte()));
			} else {
				pEnvoiDocumentVO.setEdHprimCrTexte(null);
			}

			mEnvoiDocument.saveIntoDatabase(pEnvoiDocumentVO);
			mSessionManager.endTransaction();
		} catch (TechnicalException vE) {
			// An error occured: rollback the transaction.
			mSessionManager.setCommit(false);
			mSessionManager.endTransaction();
			throw new TechnicalException(vE);
		} catch (SQLException vE) {
			mSessionManager.setCommit(false);
			mSessionManager.endTransaction();
			throw new TechnicalException(vE);
		} catch (IOException vE) {
			mSessionManager.setCommit(false);
			mSessionManager.endTransaction();
			throw new TechnicalException(vE);
		} finally {
			// Whatever happens, the session has to be closed.
			mSessionManager.endSession();
			try {
				if (vConnection != null) {
					vConnection.close();
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
En faisant le code suivant le clob transforme cette chaine de caractere :

vTexte :
Cher confrère,
Veuillez trouver, ci-joint, le compte-rendu médical relatif à
en

(variable vNewTexteCrEntier )

Cher confr¿re,
Veuillez trouver, ci-joint, le compte-rendu m¿dical relatif ¿