oracle查询时遇到的奇怪问题,求高手解答 30
大概情况是:有一张t1表在生产环境中记录临时数据,数据量比较大,这张表的数据产生后会被处理然后delete掉,所以此表会经常执行altertablet1move;现在问题...
大概情况是:
有一张t1表在生产环境中记录临时数据,数据量比较大,这张表的数据产生后会被处理然后delete掉,所以此表会经常执行alter table t1 move;
现在问题是:
此表出现了非预期的数据,有一个字段col1数据应该是“aaa='bbb'”这样的,由触发器产生,现在却出现了“aaa='”这样的非正常数据,触发器已检查无误。现在查询这样的语句“select * from t1 where t1.col1 like '%='''” 无任何结果,但查看所有记录时却有。
请高手分析下产生这样问题可能的情况,非常感谢。
因为项目有保密要求,非常抱歉,只能这样,但大家放心,查询语句中字段名表名什么的应该是不会错的.
再补充一张图 展开
有一张t1表在生产环境中记录临时数据,数据量比较大,这张表的数据产生后会被处理然后delete掉,所以此表会经常执行alter table t1 move;
现在问题是:
此表出现了非预期的数据,有一个字段col1数据应该是“aaa='bbb'”这样的,由触发器产生,现在却出现了“aaa='”这样的非正常数据,触发器已检查无误。现在查询这样的语句“select * from t1 where t1.col1 like '%='''” 无任何结果,但查看所有记录时却有。
请高手分析下产生这样问题可能的情况,非常感谢。
因为项目有保密要求,非常抱歉,只能这样,但大家放心,查询语句中字段名表名什么的应该是不会错的.
再补充一张图 展开
2个回答
展开全部
分别把 查询所有记录的结果 和 使用Like 的结果发出来看看吧,是不是你在执行的时候 数据已经被删除了?如你所说 表数据在处理后被删除!
alter table t1 move; 这个 实在没有必要经常执行吧?
可以考虑将改表设置为全局临时表,实在想降低HWM高水位,干脆直接truncate 表
alter table t1 move; 这个 实在没有必要经常执行吧?
可以考虑将改表设置为全局临时表,实在想降低HWM高水位,干脆直接truncate 表
更多追问追答
追问
删除记录相关的程序已停止,所以这个问题不存在。
move大约1月1次,一月大约100w次insert和delete。
不能truncate表,此表随时要用。
追答
select * from t1 where t1.col1 like '%='''
这个查询出来的结果是 后缀为 =' 的值,你的列值里面没有满足条件的吧?
如果是你的列值里面有 aaa='bbb',想查询 应该是后面也要加%,即:
select * from t1 where t1.col1 like '%=''%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询