11
votes

Largeur de colonne maximale dans la bobine Oracle pour déposer

J'ai un script comme celui-ci:

SET ECHO OFF
SET FEEDBACK OFF
SET VERIFY OFF
SET HEADING OFF
SET TERMOUT OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET WRAP OFF
SET LINESIZE 32000
SET LONG 32000
SET LONGCHUNKSIZE 32000
SET SERVEROUT ON

SPOOL C:\Export.txt

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....)))
  FROM --TABLENAME--
 WHERE --CONDITIONS--


1 commentaires

Cela devrait être ok. Que visuez-vous le fichier avec - Votre éditeur a-t-il une limite de longueur de ligne? Je me demande si la bobine est bien correcte mais elle a juste l'air tronquée lorsque vous essayez de le voir.


3 Réponses :


1
votes

Que diriez-vous d'utiliser GetClobval () pour convertir la sortie en un clob?

SELECT XMLELEMENT("element1",xmlelement("element2",xmlattributes(.....))).getClobVal()
  FROM --TABLENAME--
 WHERE --CONDITIONS--


0 commentaires

9
votes

Il suffit d'ajouter la ligne suivante à droite après les commandes définies: xxx

où columnname est l'alias de la colonne XML de votre instruction SELECT (vous devez ajouter un alias).

Ceci définit la largeur maximale pour cette colonne, soit 2000 caractères par défaut. Notez que, même si vous pouvez définir le format de Col aussi élevé que 60000 caractères, le plus que vous obtiendrez réellement sur une ligne avec SQLPlus est 32767 , car il s'agit de la limite supérieure de la connexion. < / p>


1 commentaires

Ceci est très utile lorsque vous êtes Script SCRIPTER DDL à l'aide de dbms_metadata.get_ddl () .



2
votes

Êtes-vous sur Windows? J'avais le même problème et aucune des deux autres réponses m'a aidé (directement, je devais faire une autre chose). Suivant les conseils de Cet article sur la configuration de SQL * Plus pour Windows L'auteur Notes: < / p>

[Note3] Définir Long Big_Number Pour que vous puissiez voir la définition d'un déclencheur ou d'une vue compliquée, ou de texte dans une colonne longue ou de la colonne de clouts.

Je fixe le mien comme étant long 32000 (ma plus longue ligne était un peu de plus de 2000 caractères) et qui résolvait le problème pour moi.


0 commentaires