表结构如下
字段1:number
字段2:char
字段3:long型
…… 在表中加入一条记录: 正确插入后,删除却出现如下问题……提示“ORA-00997: 非法使用 LONG 数据类型”
是否LONG型数据有这种限制:即 LONG型数据不能在delete操作中用作约束条件??在线等候,万分感谢……
另外:只要不附加“ and COL3 = 10”这个约束条件就可以正确执行
SQL> insert into TEST.TESTTBL1 values(100,'a',10);
已创建 1 行。
SQL> delete TEST.TESTTBL1 where COL1 = 100 and COL2 = 'a' and COL3 = 10;
delete TEST.TESTTBL1 where COL1 = 100 and COL2 = 'a' and COL3 = 10
*
ERROR 位于第 1 行:
ORA-00997: 非法使用 LONG 数据类型
SQL> 请问如果我表中只有一个long字段,且有多条记录,我要删除其中的一条记录,那不是实现不了么……???如何解决这样的问题??
字段1:number
字段2:char
字段3:long型
…… 在表中加入一条记录: 正确插入后,删除却出现如下问题……提示“ORA-00997: 非法使用 LONG 数据类型”
是否LONG型数据有这种限制:即 LONG型数据不能在delete操作中用作约束条件??在线等候,万分感谢……
另外:只要不附加“ and COL3 = 10”这个约束条件就可以正确执行
SQL> insert into TEST.TESTTBL1 values(100,'a',10);
已创建 1 行。
SQL> delete TEST.TESTTBL1 where COL1 = 100 and COL2 = 'a' and COL3 = 10;
delete TEST.TESTTBL1 where COL1 = 100 and COL2 = 'a' and COL3 = 10
*
ERROR 位于第 1 行:
ORA-00997: 非法使用 LONG 数据类型
SQL> 请问如果我表中只有一个long字段,且有多条记录,我要删除其中的一条记录,那不是实现不了么……???如何解决这样的问题??
create table t (cid int,clong long );
insert into t values( 1,1 );
insert into t values( 1,2 );
--创建全文索引
CREATE INDEX IDX_CLONG ON T(clong) INDEXTYPE IS CTXSYS.CONTEXT;
--执行查询
SELECT cID FROM t WHERE CONTAINS(clong, '1') > 0;
--查询结果
cid
1
--这样就可以根据这个查询结果对象要删除的记录进行删除
是否还有其他办法。。
多谢各位的回答,hongqi162(失踪的月亮) 还记得你回答过我的问题的,再次谢谢。
如果可用clob代替?不知道会不会很占存储空间?