oracle8i中对clob的处理

来源:互联网 发布:sql保留字是什么 编辑:程序博客网 时间:2024/05/17 06:48

今天发现oracle8i库中有一clob字段,就想将其变为varchar2,关键的问题就成了怎么保留数据的问题了,查了查oracle9i的文档,有个to_char方法,心中高兴,一试,却不好使,原来9i支持,8i不支持,郁闷。

向数据库方面的朋友寻求帮助,告知可以用两种方式:

1 DBMS_LOB.READ (

lob_loc IN CLOB CHARACTER SET ANY_CS,

amount IN OUT NOCOPY BINARY_INTEGER,

offset IN INTEGER,

buffer OUT VARCHAR2 CHARACTER SET lob_loc%CHARSET);

22-46 Supplied PL/SQL Packages and Types Reference

lob_loc Locator for the LOB to be read.

file_loc The file locator for the LOB to be examined.

Summary of DBMS_LOB Subprograms

amount Number of bytes (for BLOBs) or characters (for CLOBs) to read, or

number that were read.

offset Offset in bytes (for BLOBs) or characters (for CLOBs) from the start of

the LOB (origin: 1).

buffer Output buffer for the read operation

2

DBMS_LOB.SUBSTR (

lob_loc IN CLOB CHARACTER SET ANY_CS,

amount IN INTEGER := 32767,

offset IN INTEGER := 1)

RETURN VARCHAR2 CHARACTER SET lob_loc%CHARSET;

 

才知道,还有DBMS_LOB这个包啊,拿来一试,发现DBMS_LOB.SUBSTR在8i中好用,READ好像还是不行,呵呵,不过问题是解决了。

DBMS_LOB.SUBSTR (

lob_loc IN CLOB CHARACTER SET ANY_CS,

amount IN INTEGER := 32767,

offset IN INTEGER := 1)

RETURN VARCHAR2 CHARACTER SET lob_loc%CHARSET;

 

才知道,还有DBMS_LOB这个包啊,拿来一试,发现DBMS_LOB.SUBSTR在8i中好用,READ好像还是不行,呵呵,不过问题是解决了。