v$transaction

本文解析了Oracle数据库中V$SESSION、V$TRANSACTION及V$PROCESS视图的关系,并介绍了如何通过used_ublk等指标来监测回滚操作的进度。通过这些指标可以了解当前回滚操作正在使用的块数量,以及预测完成回滚所需的时间。

V$SESSION taddr ,paddr 分别对应 v$transaction  addr,V$PROCESS addr

v$transaction的used_ublk可以查看进度
used_ublk 在做回滚时有多少块在使用
used_now 现在有多少块在使用
used_later 在60秒后有多少块使用
(used_later /used_ublk - used_later ) = ???多少时间rollback

 

### ORA-00936 错误原因分析 ORA-00936 是 Oracle 数据库中的一种语法错误,表明 SQL 语句缺少必要的表达式或子句。以下是具体的原因和解决办法: #### 原因一:SQL 语句不完整 如果 `SELECT` 语句的关键字或参数缺失,则会触发此错误。例如: ```sql select count(*) from all_users where username=; ``` 这里的 `username=` 缺少了右侧的值,导致语法不完整[^1]。 **解决方法** 确保所有关键字后面都有对应的值或表达式。修正后的语句如下: ```sql select count(*) from all_users where username='zgta'; ``` --- #### 原因二:字段名拼写错误 如果查询中引用的字段不存在于目标表中,也会引发类似的错误。例如: ```sql select non_existent_column from all_users; ``` 由于 `non_existent_column` 字段并未定义在 `all_users` 表中,因此会出现语法错误[^2]。 **解决方法** 确认所使用的字段确实存在于目标表中,并正确书写字段名。可以通过以下方式验证字段是否存在: ```sql describe all_users; ``` --- ### 查询结果为空 (`no rows selected`) 的含义 当执行一条有效的 SQL 查询时,如果没有匹配到任何数据记录,则返回的结果集将是空的,提示信息为 `no rows selected`。这种情况并不代表语法有误,而是说明满足条件的数据不存在。 #### 示例解释 假设有一条查询语句如下: ```sql select * from employees where department_id = 100; ``` 如果没有任何员工属于部门 ID 为 100 的情况,则输出将显示 `no rows selected`,表示查询成功但无符合条件的数据[^3]。 --- ### 结合用户需求总结 对于 `ORA-00936 missing expression` 错误,主要源于 SQL 语句缺乏完整的表达式;而对于 `no rows selected` 提示,则仅意味着查询未找到对应的数据而非语法问题。两者需分别对待处理。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值