Testo multilineo nel campo Varchar2
-
13-12-2019 - |
Domanda
Ho una data multilinea e mi piacerebbe inserirlo in un tavolo.Quindi, naturalmente, mi piacerebbe recuperarlo mentre conserva i luoghi dei ritorni della cartuccia.
ad esempio.Ho dati come questo nel file di testo
-------------------------------
| ID | text |
| | |
| 01 | This is headline. |
| 02 | This is all the text.|
| | ¤ |
| | Of great story once |
| 03 | Great weather |
-------------------------------
.
¤ è l'indicatore del ritorno della cartuccia.Quando provo a eseguire la query, quindi i dati vengono come questo:
-------------------------------
| ID | text |
| | |
| 01 | This is headline. |
| 02 | This is all the text.|
| 03 | Great weather |
-------------------------------
.
Cosa mi piacerebbe avere nella tabella: (Non ho idea di come mostrare il ritorno della cartuccia nell'esempio seguente)
-----------------------------------------------------
| ID | text |
| | |
| 01 | This is headline. |
| 02 | This is all the text. Of great story once |
| 03 | Great weather |
-----------------------------------------------------
.
che è ovviamente sbagliato come i dati per ID 02 non è stato importato completamente.
Ecco il mio script:
LOAD DATA
INFILE "file.txt" BADFILE "file.bad" DISCARDFILE "file.dsc"
APPEND
INTO TABLE text_table
FIELDS TERMINATED BY X'7C' TRAILING NULLCOLS
(
employee_id,
exp_pro CHAR(4000)
)
.
Qualche idea?
Soluzione
Prima assicurarsi che il problema non sia con il modo in cui stai visualizzando i dati (o l'IDE utilizzato).A volte gli spettatori si fermano semplicemente a un lineme (o ritorno in carrozza o ad alcuni char binari).
Prova a scaricare prima una rappresentazione esagonale di alcuni dati.Ad esempio:
with txt as (
select 'This is line 1.' || chr(13) || chr(10) || 'Line 2.' as lines
from dual
)
select dump(txt.lines, 16) from txt;
.
Dovresti essere in grado di vedere i caratteri 0D0A (CRLF), o qualunque altro carattere "non stampabile" esiste, se presente.