现有数据库中有long raw 字段类型,存放的XML格式的数据,现在想完成将XML数据更新到该字段,请问如何处理。insert 新数据,含该long raw 字段信息;
update 该long raw 字段。long raw字段是数据库已经设计好的,各位大侠就不要建议我换其他数据类型了,呵呵。谢谢了!
update 该long raw 字段。long raw字段是数据库已经设计好的,各位大侠就不要建议我换其他数据类型了,呵呵。谢谢了!
解决方案 »
- SQL 错误: ORA-04098: 触发器 'PMG001.OBJECTADMIN_SEQ_TRIGGER' 无效且未通过重新验证
- 求 Sql 写法 in oracle, 急!
- 关于表排序问题请教
- 关于ORACLE多个实例的启动与关闭
- 一个函数来合并一列中相同行的值
- 请求一条pl/sql
- Pro*C中预编译时,选择“编辑”->“选项”时弹出一个内容为“ANSI”的MSG框......
- 新手老问题,关于management server登陆
- 怎样写columna>'2003-10-10'
- SQL两表查询怎么也查不出来
- 换成oracle10g时,delphi的savetofile,number字段值10010变为10的问题
- oracle中如何更新表中某列数据(筛选条件中带该列条件)
如stream, ldg之类的都不支持long raw long这样的datatype
所以我们主要分两步来进行:
先插入其它字段,然后再插入long类型字段,
这可以通过过程来实现。下面我给你一个例子,如下:SQL> create table testlong (id number,name varchar2(12),history long); 表已创建。 SQL> create table testlong1 (id number,name varchar2(12),history long); 表已创建。 SQL> insert into testlong values(1,'dwh','work in foshan'); 已创建 1 行。
SQL> insert into testlong values(2,'sfg','work in guangzhou'); 已创建 1 行。
SQL> select * from testlong; ID NAME
---------- ------------------------
HISTORY
-------------------------------------------------------------------------------- 1 dwh
work in foshan 2 sfg
work in guangzhou SQL> insert into testlong1 select * from testlong;
insert into testlong1 select * from testlong
*
ERROR 位于第 1 行:
ORA-00997: 非法使用 LONG 数据类型
SQL> Declare
2 CURSOR bcur
3 IS SELECT id,history from testlong;
4 brec bcur%ROWTYPE;
5 BEGIN
6 insert into testlong1(id,name) select id,name from testlong;--其它类型先插入
7 OPEN bcur;
8 LOOP
9 FETCH bcur INTO brec;
10 EXIT WHEN bcur%NOTFOUND;
11 update testlong1 set history=brec.history where id=brec.id;
12 END LOOP;
13 CLOSE bcur;
14 END;
15 / PL/SQL 过程已成功完成。 SQL> select * from testlong1; ID NAME
---------- ------------------------
HISTORY
-------------------------------------------------------------------------- 1 dwh
work in foshan 2 sfg
work in guangzhou