web-dev-qa-db-ja.com

SQL ServerのSELECTでCLOBタイプを表示するにはどうすればよいですか?

CLOB型データの1列のテーブルがあり、それらはすべて20バイト以下の非常に短いですが、CLOBデータ内の実際の文字列を見ることができません。

たとえば、SELECT *を使用する場合、CLOBタイプではすべてのデータは次のようになります。

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

しかし、私はただCLOBデータの内容を見たいだけです。

私は試した:

SELECT DBMS_LOB.SUBSTR(ClobColumnName, 20 ,1)

そして、それは動作しません、エラーは:

エラーコード:4121、SQL状態:S1000
列「DBMS_LOB」またはユーザー定義関数または集計「DBMS_LOB.SUBSTR」のいずれかが見つからないか、名前があいまいです。

クエリでCLOBデータを直接表示するための構文は何ですか?

dbVisualizerでSQL Serverを使用しています。

13
tomriddle_1234

1つの解決策を見つけました。より良い方法があるはずです、コメントでより多くの可能な解決策を示してください。

SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ;
20
tomriddle_1234

メッセージ/データをCLOB列に格納した後、CLOB列に実際のデータが表示される1つのソリューションが見つかった後、CLOBデータ型(1000K)の1つの列を持つテーブルがあります。

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

上記のクエリは、CLOB(Character Large Objects)を通常の文字列にキャストします。

5

DbVisで表示するには、オプションで変更するだけです。 CLOB列を表示するためのエントリがあります。

3
Midas1977

JTDSドライバーを使用してSQL Serverに接続していると思います。接続のドライバプロパティで、「USELOBS」をFalseに設定して、自動的に文字列にキャストできます。

3
NecKroM

同じ問題があり、dbVisualizerの代わりにDBeaver( http://dbeaver.jkiss.org/ )を使用して解決しました。

DBeaverを使用して、SQLServerからselect *を実行すると、結果セットのCLOBをダブルクリックするだけで、コンテンツのある新しいウィンドウが開きます。とても滑らか。

1
koenig