不知哪位高手能告诉我,clob类型的字段如何存取?有什么限制?文件上传到服务器太麻烦,所以我想把文件存在数据库中,是图片文件和文本文件,不知是否可以用clob类型的字段存入数据库?
---------------------------------------------------------------
CREATE TABLE my_book_text (
chapter_descr VARCHAR2(100),
chapter_text CLOB);
CREATE OR REPLACE FUNCTION book_file (chapter_in IN VARCHAR2)
RETURN CLOB
IS
CURSOR book_cur
IS
SELECT chapter_file
FROM my_book_files
WHERE file_descr = chapter_in;
book_rec book_cur%ROWTYPE;
BEGIN
OPEN book_cur;
FETCH book_cur INTO book_rec;
CLOSE book_cur;
RETURN book_rec.chapter_file;
END;
/
CREATE OR REPLACE FUNCTION book_text (chapter_in IN VARCHAR2)
RETURN CLOB
IS
CURSOR book_cur
IS
SELECT chapter_text
FROM my_book_text
WHERE chapter_descr = chapter_in;
book_rec book_cur%ROWTYPE;
BEGIN
OPEN book_cur;
FETCH book_cur INTO book_rec;
CLOSE book_cur;
RETURN book_rec.chapter_text;
END;
/
CREATE OR REPLACE FUNCTION book_text_forupdate (chapter_in IN VARCHAR2)
RETURN CLOB
IS
CURSOR book_cur
IS
SELECT chapter_text
FROM my_book_text
WHERE chapter_descr = chapter_in
FOR UPDATE;
book_rec book_cur%ROWTYPE;
BEGIN
OPEN book_cur;
FETCH book_cur INTO book_rec;
CLOSE book_cur;
RETURN book_rec.chapter_text;
END;
/
---------------------------------------------------------------
SET LONG 200
COL chapter_descr FOR A15
COL chapter_text FOR A40 WORD_WRAPPED
SELECT chapter_descr, chapter_text
FROM my_book_text
WHERE chapter_descr = 'Chapter 2';
DECLARE
v_text_loc CLOB;
v_offset INTEGER;
v_buffer VARCHAR2(100);
BEGIN
v_text_loc := book_text_forupdate ('Chapter 1');
v_offset := DBMS_LOB.GETLENGTH (v_text_loc) + 3;
v_buffer := 'The End.';
DBMS_LOB.WRITE (v_text_loc, 8, v_offset, v_buffer);
END;
/