web-dev-qa-db-fra.com

Insertion de données dans une table avec une seule valeur comme clob et blob

Ma table a une colonne de clob et une colonne blob. J'ai besoin d'insérer des données dans les instructions d'insertion.

La longueur des données à insérer est supérieure à 4000 caractères.

Lorsque j'exporte des instructions d'insertion, c'est SQL Navigator, je reçois des valeurs vides.

INSERT INTO mytable VALUES('REQUEST',EMPTY_CLOB(),EMPTY_BLOB());

J'ai également essayé de faire insérer des données informatiques telles que ceci.J'ai ajouté d'exemple de données à insérer. Les données réelles à insérer sont grandes.

INSERT INTO mytable VALUES('REQUEST2','{"customer"asxcbasjbab....:}',NULL);

Quelqu'un peut-il me dire le meilleur moyen d'insérer des données dans le tableau dans ces scénarios.

Ou de toute façon pour exporter et importer ces données aidera également.

2
Patan

En SQL, la limite est de 4 000 caractères. Utilisation de SQL droit comme ça, sans variable de liaison, vous serez limité à 4 000 caractères. Étapes pour insérer des valeurs LOB :

  • 1) Créez une table et nommez-le tbl_clob avec 2 champs:

     [.____] id_int = entier; 
     clob_txt = clob; 
     [.____]
  • 2) Créez une procédure stockée et nommez-la p_clob avec le code suivant:

[.____] (p_id_int in int, p_clob_txt in varchar2) comme [.____] [.____] [. ____] commencent 
 
 
  • 3) Testez l'insertion jusqu'à 32000. Utilisez SQL Plus et entrez quelques démarrages dans le champ CLOB:
[.____] SQL> EXEC P_CLOB (1, RPAD ('*', 32000, '*')); 
 [.____] SQL> COMMIT; [.____] SQL> EXEC P_CLOB (2, RPAD ('*', 19872, '*')); 
 [.____] SQL> commit; [.____]
  • 4) Récupérez les 2 enregistrements que vous venez d'insérer et compter le nombre de caractères dans les champs de clob:
[.____] SQL> Select id_int, dbms_lob.getlength (clob_txt) à partir de tbl_clob; [.____]
  • 5) Vous devriez obtenir quelque chose comme ça:
( ----- 
 1 32000 [.____] 2 19872 [.____]

Logique ?

3
Up_One