Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/11/2011, 11h51   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 123
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 123
Points : 26
Points : 26
Par défaut DBMS Append CLOB

Bonjour,

Lorsque j’exécute ce script, je ne comprends pas pourquoi je n'ai aucune modification dans la base alors que je rajoute du code HTML mon champs CLOB. Une piste?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Connect ***********************
SET SERVEROUTPUT ON;
DECLARE
  dest_clob CLOB := EMPTY_CLOB(); 
  src_clob CLOB := EMPTY_CLOB();
 
BEGIN
  SELECT SRIT_LONG_DESCRIPTION INTO dest_clob
  FROM T_ITEM
  WHERE PK_ITEM = 15666 FOR UPDATE;
 
	 dbms_lob.APPEND(dest_clob, TO_CLOB('<p align="center"> TEST APPEND </p>'));
	 COMMIT; 
 
	 UPDATE T_ITEM SET SRIT_LONG_DESCRIPTION = dest_clob 
WHERE     PK_ITEM = 15666;
	 COMMIT;
 
END;
sbz29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 14h06   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 313
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 313
Points : 5 819
Points : 5 819
Vous devez donner plus de détails sur ce que vous fait
Code :
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
 
Connected TO Oracle DATABASE 10g Enterprise Edition Release 10.2.0.4.0 
Connected AS mni
 
SQL> 
SQL> CREATE TABLE T_ITEM (
  2    PK_ITEM    int,
  3    SRIT_LONG_DESCRIPTION clob
  4  )
  5  /
 
TABLE created
SQL> INSERT INTO t_item
  2  VALUES (15666, To_clob('test'))
  3  /
 
1 row inserted
SQL> DECLARE
  2    dest_clob CLOB := EMPTY_CLOB();
  3    src_clob CLOB := EMPTY_CLOB();
  4  
  5  BEGIN
  6    SELECT SRIT_LONG_DESCRIPTION INTO dest_clob
  7    FROM T_ITEM
  8    WHERE PK_ITEM = 15666 FOR UPDATE;
  9  
 10     dbms_lob.APPEND(dest_clob, TO_CLOB('<p align="center"> TEST APPEND </p>'));
 11     COMMIT;
 12  
 13     UPDATE T_ITEM SET SRIT_LONG_DESCRIPTION = dest_clob
 14  WHERE     PK_ITEM = 15666;
 15  	 COMMIT;
 16  
 17  END;
 18  /
 
PL/SQL procedure successfully completed
 
SQL> SELECT SRIT_LONG_DESCRIPTION
  2  FROM T_ITEM
  3  WHERE PK_ITEM = 15666
  4  /
 
SRIT_LONG_DESCRIPTION
--------------------------------------------------------------------------------
test<p align="center"> TEST APPEND </p>
 
SQL>
Je vous suggère d'investiguer l'état de votre pointeur lob dans la base pour voir s’il est nul ou vide (empty) avant d'essayer de lui ajouter quelque chose.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2011, 16h25   #3
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 686
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 686
Points : 10 435
Points : 10 435
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
En plus des remarques de mnitu sur les vides et null, n'y a-t-il pas double emploi avec le APPEND et l'UPDATE ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
DECLARE
  dest_clob CLOB := EMPTY_CLOB(); 
 
BEGIN
    SELECT SRIT_LONG_DESCRIPTION INTO dest_clob
      FROM T_ITEM
     WHERE PK_ITEM = 15666 FOR UPDATE;
 
    dbms_lob.APPEND(dest_clob, TO_CLOB('<p align="center"> TEST APPEND </p>'));
    COMMIT; 
 
END;
/
 
-- PL/SQL procedure successfully completed.
 
SELECT SRIT_LONG_DESCRIPTION
  FROM T_ITEM
 WHERE PK_ITEM = 15666;
 
SRIT_LONG_DESCRIPTION                                                         
------------------------------------------------------------------------------
test<p align="center"> TEST APPEND </p>
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h48.


 
 
 
 
Partenaires

Hébergement Web