oracle根据进程号查询正在运行的sql

本文介绍了一种通过Oracle内部视图v$sqltexta、v$session及v$process联合查询的方法,来获取由操作系统进程ID对应的具体SQL文本信息。此查询涉及对多个视图进行连接操作,并使用DECODE函数来处理hash值和地址,最终按片段升序排列返回结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SELECT
    sql_text
FROM
    v$sqltext a
WHERE
    (a.hash_value, a.address) IN (
        SELECT
            DECODE(
                sql_hash_value,
                0,
                prev_hash_value,
                sql_hash_value
            ),
            DECODE(
                sql_hash_value,
                0,
                prev_sql_addr,
                sql_address
            )
        FROM
            v$session b
        WHERE
            b.paddr = (
                SELECT
                    addr
                FROM
                    v$process c
                WHERE
                    c.spid = '&pid'
            )
    )
ORDER BY
    piece ASC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值