2013-03-13 13 views
9

Ho una tabella con una colonna di dati di tipo CLOB, sono tutti molto brevi non più di 20 byte, tuttavia non riesco a vedere la stringa effettiva nei dati CLOB.Come mostrare il tipo CLOB in una SELECT in SQL Server?

Per esempio, se io uso SELECT *, sotto il tipo CLOB ogni dati è come:

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

ma voglio solo vedere il contenuto dei dati CLOB.

ho provato:

SELECT DBMS_LOB.SUBSTR(ClobColumnName, 20 ,1) 

E non funziona, l'errore è:

Codice di errore: 4121, SQL Stato: S1000
Non riesci a trovare né colonna "DBMS_LOB" o la funzione definita dall'utente o aggregata "DBMS_LOB.SUBSTR", o il nome è ambiguo.

Così posso chiedere qual è la sintassi per la visualizzazione diretta di un dato CLOB in una query?

Utilizzo SQL Server con dbVisualizer.

+1

SQL Server non ha un tipo di dati 'clob'. Qual è il tipo di dati della colonna reale? Presumo 'varbinary (x)'/'binary (x)'? In tal caso, perché lo stai usando per archiviare le stringhe? –

+0

@ MartinSmith, hai ragione, sono nuovo di questi confusi linguaggi SQL diversi. viene visualizzato come un tipo di dati varchar (2005) con un'enorme dimensione di colonna (2148473647) nell'elenco di attributi di colonne in dbVisualizer. Devo usare questo software poiché sto usando Linux anziché Windows per gestire il server SQL ... –

risposta

15

Ho trovato una soluzione. Ci dovrebbero essere modi migliori, per favore mostra più possibili soluzioni nei commenti.

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

Ho avuto lo stesso problema e risolto utilizzando DBeaver (http://dbeaver.jkiss.org/) anziché dbvisualizer.

Quando utilizzo DBeaver e faccio una selezione * dal mio SQLServer, posso semplicemente fare doppio clic sul CLOB nel set di risultati e si apre in una nuova finestra con il contenuto. Molto lucido

+0

Funziona anche su dbVisualizer. – boutta

3

Per vederlo in DbVis, è sufficiente modificarlo nelle opzioni. C'è una voce per la visualizzazione delle colonne CLOB.

2

Ho una tabella con una colonna ha il tipo di dati CLOB (1000K), dopo aver memorizzato messaggi/dati nella colonna CLOB e trovato una soluzione, vedere i dati effettivi nella colonna CLOB.

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

La query precedente CAST il CLOB (Character Large Objects) in una stringa normale.

1

Presumo che si stia utilizzando il driver jDTS per connettersi a SQL Server. Nelle proprietà del driver della connessione è possibile impostare "USELOBS" su False per eseguirne il cast automatico.