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を使用しています。
1つの解決策を見つけました。より良い方法があるはずです、コメントでより多くの可能な解決策を示してください。
SELECT CAST(ClobColumnName AS VARCHAR(50)) AS ClobColumnName ;
メッセージ/データを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)を通常の文字列にキャストします。
DbVisで表示するには、オプションで変更するだけです。 CLOB列を表示するためのエントリがあります。
JTDSドライバーを使用してSQL Serverに接続していると思います。接続のドライバプロパティで、「USELOBS」をFalseに設定して、自動的に文字列にキャストできます。
同じ問題があり、dbVisualizerの代わりにDBeaver( http://dbeaver.jkiss.org/ )を使用して解決しました。
DBeaverを使用して、SQLServerからselect *を実行すると、結果セットのCLOBをダブルクリックするだけで、コンテンツのある新しいウィンドウが開きます。とても滑らか。