Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

59

积分

0

好友

0

主题
1#
发表于 2012-3-7 22:14:44 | 查看: 4533| 回复: 1
hi  maclean:

有些等待事件的p1 参数是一些对象的地址,有时候是10进制格式,如1.3835e+19  ,想把它转换成相关表中实际使用的格式如'C000000122E2A6D8'

使用  select to_char('1.3835E+19','xxxxxxxxxxxxxxxx') from dual;   得到是BFFFCB32F3878000 而不是实际的C000000122E2A6D8 。

是我用的方法不对吗?
2#
发表于 2012-3-7 22:42:09
V$SESSION
P1TEXT         VARCHAR2(64)         Description of the first wait event parameter
P1         NUMBER         First wait event parameter (in decimal)
P1RAW         RAW(8)         First wait event parameter (in hexadecimal)Foot 1

p1 十进制  p1raw 十六进制


SQL> create or replace procedure abc
  2  as
  3  begin
  4  execute immediate 'alter procedure abc compile';
  5  end;
  6  /

Procedure created.

SQL> exec abc;



SQL> col p1text for a25
SQL> select p1text,p1,p1raw,to_char(p1,'XXXXXXXXXXXXXXXXXXXXX') from v$session where p1text='handle address';

P1TEXT                            P1 P1RAW            TO_CHAR(P1,'XXXXXXXXXX
------------------------- ---------- ---------------- ----------------------
handle address            2128201888 000000007ED9C8A0               7ED9C8A0


1.3835e+19 是因为 十进制长度过长, 导致使用 e+这种表达式, 这个值并不精确。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-24 00:07 , Processed in 0.050157 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569