2013-03-13 49 views
9

Mam tabelę z jedną kolumną danych typu CLOB, wszystkie są bardzo krótkie nie więcej niż 20 bajtów, jednak nie widzę rzeczywistego ciąg w danych CLOB.Jak wyświetlić typ CLOB w SELECT na serwerze SQL?

Na przykład, jeśli mogę użyć SELECT * pod każdym typem CLOB danych jak:

CLOB, 8 Bytes 
CLOB, 15 Bytes 
CLOB, 9 Bytes 

Ale ja po prostu chcesz zobaczyć zawartość danych CLOB.

Próbowałem:

SELECT DBMS_LOB.SUBSTR(ClobColumnName, 20 ,1) 

I to nie działa, błąd jest:

Kod błędu: 4121, Stan SQL: S1000
nie mogę znaleźć ani kolumny "DBMS_LOB" lub zdefiniowana przez użytkownika funkcja lub agregacja "DBMS_LOB.SUBSTR" lub nazwa jest niejednoznaczna.

Czy mogę zapytać, jaka jest składnia bezpośredniego wyświetlania danych CLOB w zapytaniu?

Używam programu SQL Server z dbVisualizer.

+1

Serwer SQL nie ma typu danych 'clob'. Jaki jest prawdziwy typ danych kolumny? Zakładam 'varbinary (x)'/'binary (x)'? Jeśli tak, dlaczego używasz tego do przechowywania ciągów w pierwszej kolejności? –

+0

@MartinSmith, masz rację, jestem nowy w tych mylących różnych językach SQL. jest wyświetlany jako typ danych varchar (2005) z ogromnym rozmiarem kolumny (2148473647) na liście atrybutów kolumn w dbVisalizer. Muszę używać tego oprogramowania, ponieważ używam Linuksa zamiast Windows do zarządzania serwerem SQL ... –

Odpowiedz

15

Wymyśliłem jedno rozwiązanie. Powinny istnieć lepsze sposoby, proszę pokazać więcej możliwych rozwiązań w komentarzach.

SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ; 
1

że ten sam problem i rozwiązany za pomocą DBeaver (http://dbeaver.jkiss.org/) zamiast DbVisualizer.

Kiedy używam DBeavera i wybieram * z mojego SQLServer mogę po prostu dwukrotnie kliknąć CLOB w zestawie wyników i otworzy się on w nowym oknie z zawartością. Bardzo śliskie.

+0

To działa również na dbVisalizer. – boutta

3

Aby zobaczyć to w DbV, wystarczy zmienić to w opcjach. Istnieje pozycja do wyświetlania kolumn CLOB.

2

Mam tabelę z jedną kolumną ma typ danych CLOB (1000K), po zapisaniu komunikatu/danych w kolumnie CLOB i znaleziono jedno rozwiązanie zobacz rzeczywiste dane w kolumnie CLOB.

SELECT CAST(T.CLOB_COLUMNNAME AS VARCHAR(1000)) AS SAMPLEDATA 
    FROM TABLE_NAME AS T 

Powyższa kwerenda CAST CLOB (Character Large Objects) w normalny ciąg.

1

Zakładam, że używasz sterownika jDTS do połączenia z serwerem SQL. We właściwościach sterownika połączenia można ustawić wartość "USELOBS" na False, aby automatycznie rzutować je na łańcuch.