用instr()来查字?
请详细告知,多谢
请详细告知,多谢
解决方案 »
- 麻烦高手看下,Oracle分页过程使用java测试怎么出错了?
- 遇到了oralce ora-01033错误
- 求助ORACLE 中保存clob类型出现如下错误,我用的weblogic 8.1
- liusong_china 进~~~来解释你写的sql
- 问一个简单的问题,在线等
- 这个查询语句如何写?
- 关于数据库两个相同表结构不同数据的表的比较?SQL很强的来吧?
- 我这个存储过程怎么建不了啊!请问各位大侠!总是提示"创建过程带有编译错误"???
- Oracle数据库使用什么数据类型的字段存放图片??
- 紧急求助:在NT4上安装了ORACLE数据库,但是安装完瑞星杀毒之后,又把瑞星卸载了,ORACLE就起不来了,哪位大侠知道这是怎么回事?
- 请问Oracle里面建表的方式有哪几种?新手分多!!!!!!:)
- 请教一个问题。
insert into table1(id, clob_content) values(1, 'insert a string in clob');才不会碰到问题在我这里oracle text对于varchar2类型中英文全部能检索,但是对于blob或者clob的字段就不行了。而且oracle论坛里的人说如果是图文并茂的文档(word/pdf),最好用blob而不是clob
clob可以
dbms_lob.instr("字段名","somestr")
客户端上传文件,服务端将文件放入数据库,每隔一段时间更新索引dbms_lob.instr("字段名","somestr")中somestr最多4000字符,1333汉字,远远不够,不用说文件了
用jdbc把文件放进clob里和blob一样问题,就是英文可以检索,中文不行
那次问的是用PL/SQL插入BLOB的情况,jdbc里用的是类似的语句[注:/me英文比Oracle水平还水]
-------------------------------------------------------------
First I use simplify chinese.
There are several English and SimplifyChinese words in file a.txt, and all the words are created by typing not copy.
My Table structure is:
CREATE TABLE "CASTLEZ"."ORATEXT_BLOB" (
"ID" VARCHAR2(10) NOT NULL,
"CONTENT" BLOB, PRIMARY KEY("ID")
)
TABLESPACE "ORACLE_TEXT" ;
COMMIT;
-------------------------------------------------------------
I insert records use this procedure:
CREATE OR REPLACE DIRECTORY "MyFilePath" AS 'e:\test';
COMMIT;
CREATE OR REPLACE PROCEDURE Save_Blob AS
f_lob BFILE;
b_lob BLOB;
BEGIN
INSERT INTO oratext_blob VALUES('1', empty_blob()) RETURN content INTO b_lob;
f_lob := BFILENAME('MyFilePath', 'a.txt');
dbms_lob.fileopen(f_lob, dbms_lob.file_readonly);
dbms_lob.loadfromfile(b_lob, f_lob, dbms_lob.getlength(f_lob));
dbms_lob.fileclose(f_lob);
COMMIT;
END;
-------------------------------------------------------------
Then I create the Index On the 'content' index:
EXEC ctx_ddl.drop_preference('my_lexer');
COMMIT;
EXEC CTX_DDL.CREATE_PREFERENCE('my_lexer','CHINESE_VGRAM_LEXER');
COMMIT;
-------------------------------------------------------------
All operation done Successfully
-------------------------------------------------------------
But when I query a word exists in the inserted file -- 'a.txt':
SELECT score(1), id FROM oratext_blob
WHERE contains(content, '<some chinese word in a.txt>', 1)>0;
COMMIT; no fit record displayed. Even I query an English word in that file.
------------------------------------------------------------- PS: I use Oracle 9ir2
and the nls of database is
PARAMETER VALUE
---------------------------------------------------------------- ----------------------------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE