2011-09-09 12 views
6

Mam tę kolumnę CLOB i muszę wyświetlić go za pomocą instrukcji select.Wyświetlanie kolumny CLOB z ponad 4000 znaków

użyłem DBMS_LOB.SUBSTR aby przekształcić go varchar2:

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

Mój problem jest nieco mojego CLOB zawiera więcej niż 4000 znaków. Jak mogę go wyświetlić ... każdy pomysł/sugestia?

thanks a lot ..

+0

Jak ty go wyświetlić? – eaolson

Odpowiedz

0

VARCHAR2 może być tylko 4000 bajtów, gdy dostęp do SQL. Jeśli chcesz pracować z CLOBem większym niż 4000 bajtów, nie możesz go przekonwertować na VARCHAR2, musisz pracować jako CLOB.

Z jakiego narzędzia korzystasz?

Większość narzędzi/języków może pracować z CLOB natywnie. Po prostu wybierz kolumnę:

select T1.CLOB_COL from T1 
6

Chyba można wyświetlać porcje jako osobne rzędy?

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) 

czy istnieje ograniczenie na maksymalny rozmiar CLOB może być w systemie można kodować ciężko liczba kolumn tekstowych powrócił

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

Po wyszukaniu i wypróbowaniu wielu różnych technik, to jest jedyna rzecz, która zadziałała dla mnie, używając prostego kodu SQL. Większość innych rozwiązań wymaga PL/SQL lub innych metod wymagających specjalnych uprawnień. – bobfet1

Powiązane problemy