Отображение столбца CLOB с 4000+ символов - PullRequest
6 голосов
/ 09 сентября 2011

У меня есть этот столбец CLOB, и мне нужно отобразить его с помощью оператора select.

Я использовал DBMS_LOB.SUBSTR, чтобы преобразовать его в varchar2:

select DBMS_LOB.SUBSTR(T1.CLOB_COL,4000,1) CLOB_COL from T1

Моя проблема в том, что некоторые из моих CLOBS содержат более 4000 символов. Как я могу показать это ... любая идея / предложение?

спасибо большое ..

Ответы [ 2 ]

6 голосов
/ 09 сентября 2011

Полагаю, вы могли бы отображать фрагменты в виде отдельных строк?

SELECT ROWNUM as chunk_no,ID, SUBSTR (t1.clob_col, (ROWNUM-1)*4000, 4000) AS chunk
FROM t1
CONNECT BY (ROWNUM-1)*4000 <= LENGTH(t1.clob_col)

или если в вашей системе есть ограничение на максимальный размер саба, вы можете жестко указать количество возвращаемых текстовых столбцов

SELECT SUBSTR (t1.clob_col, 1, 4000) AS pt1,
       CASE WHEN LENGTH (t1.clob_col) > 4000  THEN SUBSTR (t1.clob_col, 4001, 4000) END AS pt2,
       CASE WHEN LENGTH (t1.clob_col) > 8000  THEN SUBSTR (t1.clob_col, 8001, 4000) END AS pt3,
       CASE WHEN LENGTH (t1.clob_col) > 12000 THEN SUBSTR (t1.clob_col, 1201, 4000) END AS pt4
FROM t1
0 голосов
/ 09 сентября 2011

VARCHAR2 может иметь длину только 4000 байтов при обращении с помощью SQL.Если вы хотите работать с CLOB размером более 4000 байт, вы не можете конвертировать его в VARCHAR2, вам нужно работать как CLOB.

Какой инструмент вы используете?

БольшинствоИнструменты / языки могут работать с CLOB изначально.Просто выберите столбец:

select T1.CLOB_COL from T1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...