Clob列为varchar2

时间:2013-10-17 05:42:06

标签: java sql oracle

我正在使用oracle 11g r2。当我运行以下查询时:

select 
  u.object_name,
  u.object_type,
  t.owner,
  DBMS_METADATA.GET_DDL(u.object_type, u.object_name) "DLL_INFORMATION"
from user_objects u
inner join all_tables t
on u.object_name = t.table_name

ddl信息列的结果是:

oracle.sql.CLOB@60802850

当我需要看到这些

CREATE TABLE "SYS"."ICOL$" 
 (  
   "OBJ#" NUMBER NOT NULL ENABLE, 
   "BO#" NUMBER NOT NULL ENABLE, 
   "COL#" NUMBER NOT NULL ENABLE, 
   "POS#" NUMBER NOT NULL ENABLE, 
   "SEGCOL#" NUMBER NOT NULL ENABLE, 
   "SEGCOLLENGTH" NUMBER NOT NULL ENABLE, 
   "OFFSET" NUMBER NOT NULL ENABLE, 
   "INTCOL#" NUMBER NOT NULL ENABLE, 
   "SPARE1" NUMBER, 
   "SPARE2" NUMBER, 
   "SPARE3" NUMBER, 
   "SPARE4" VARCHAR2(1000), 
   "SPARE5" VARCHAR2(1000), 
   "SPARE6" DATE
 ) CLUSTER "SYS"."C_OBJ#" ("BO#")

如何设置列的缓冲区或在列???上进行强制转换

1 个答案:

答案 0 :(得分:0)

我找到答案:DBMS_LOB.SUBSTR(DBMS_METADATA.GET_DDL(u.object_type,u.object_name),2000,1)为“DLL_INFORMATION”。谢谢,顺便说一句