select xc.*
from (select xmltype(bfilename('VDIR1','ruanshili.xml'),nls_charset_id('ZHS16GBK')) x from dual) t, xmltable('/TRS/REC'
passing x
columns "作者" varchar2(20) path '作者',
"修改日期" char(10) path '修改日期',
"分类" varchar2(30) path '分类',
"发表日期" char(10) path '发表日期',
"字数" number(4) path '字数',
"录入员" varchar2(20) path '录入员',
"录入日期" char(10) path '录入日期',
"日期" char(10) path '日期',
"来源" varchar2(30) path '来源',
"标题" varchar2(100) path '标题',
"正文" BLOB path '正文',
"正文字数" number(4) path '正文字数',
"状态" char path '状态',
"Info_ID" char(30) path 'Info_ID') xc上述的SQL代码是读取XML文件 其中正文的字数在5000--20000查询时报错“ORA-00932: 数据类型不一致: 应为 -, 但却获得 BLOB”请各位大大帮帮忙!! 谢谢!!
解决方案 »
- 写存储过程时出的错误:PLS-00201: 必须声明标识符 'INSERT_OBJECT'
- 请教Oracle9i问题
- 数据库启动的问题
- 关于dmp文件的导入问题
- 用ADO或OLEDB连接数据库的问题,高手快来接分啊
- 求一条简单的查询语句
- 请问使用ORACLE的应用程序的客户端怎么发布啊?不会要在客户机上花600M安装ORACLE客户端吧?
- 求如下SQL语句的写法
- 谁知道JDBC FOR ORACLE 怎样配置?
- 如何查询Oracle错误码说明
- 如何针对一个已经存在的表建立分区
- Oracle中的密码DBMS_OBFUSCATION_TOOLKIT.MD5加密位数的问题,在OOXX之后密码一定是16位或者32位吗?可能做成10位吗?
--不过如果好像11g取消了这个设置
如果xml中的字段个数超大 比如说 正文的字数一般在5000--20000 要导入到oracle对应的表中正文字段正文字段是 blob类型! 有没有解决的办法!! 请各位大大帮帮忙!!! 谢谢!!!
我说的无法直接查看是不能在sqlplus
通过select ...
INSERT INTO ruanshili(作者,修改日期,分类,发表日期,字数,录入员,录入日期,日期,来源,标题,正文,正文字数,状态,Info_ID)
(select xc.*
from (select xmltype(bfilename('VDIR1','ruanshili.xml'),nls_charset_id('ZHS16GBK')) x from dual) t, xmltable('/TRS/REC'
passing x
columns "作者" varchar2(20) path '作者',
"修改日期" char(10) path '修改日期',
"分类" varchar2(30) path '分类',
"发表日期" char(10) path '发表日期',
"字数" number(4) path '字数',
"录入员" varchar2(20) path '录入员',
"录入日期" char(10) path '录入日期',
"日期" char(10) path '日期',
"来源" varchar2(30) path '来源',
"标题" varchar2(100) path '标题',
"正文" BLOB path '正文',
"正文字数" number(4) path '正文字数',
"状态" char path '状态',
"Info_ID" char(30) path 'Info_ID') xc)我选择直接插入,也是报同样的错误!!
SQL> create table blob_table(
2 id number primary key,
3 blob_cl blob not null
4 );表已创建。--to_blob()这个是关键
SQL> insert into blob_table values(1,to_blob('11111000011111'));已创建 1 行。
(select xc.作者,xc.修改日期,xc.分类,xc.发表日期,xc.字数,xc.录入员,xc.录入日期,xc.日期,xc.来源,xc.标题,to_blob(xc.正文),xc.正文字数,xc.状态,xc.INFO_ID from (select xmltype(bfilename('VDIR1','567.xml'),nls_charset_id('ZHS16GBK')) x from dual) t, xmltable('/TRS/REC'
passing x
columns "作者" varchar2(20) path '作者',
"修改日期" char(10) path '修改日期',
"分类" varchar2(30) path '分类',
"发表日期" char(10) path '发表日期',
"字数" number(4) path '字数',
"录入员" varchar2(20) path '录入员',
"录入日期" char(10) path '录入日期',
"日期" char(10) path '日期',
"来源" varchar2(30) path '来源',
"标题" varchar2(100) path '标题',
"正文" BLOB path '正文',
"正文字数" number(4) path '正文字数',
"状态" char path '状态',
"INFO_ID" char(10) path 'INFO_ID') xc)将正文字段添加to_blob 还是报同样的错误1!!
改为 "正文" varchar(4000) path '正文'就会提示“ORA-25137: 数据值超出范围”
哪位大大有没有解决办法? 谢谢了!!!
yes no cancel