You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Oracle迁移至PostgreSQL:获取会话ID的等效语句查询

Oracle转PostgreSQL:SID查询等效语句

Oracle中select SYS_CONTEXT('USERENV','SID') from dual;的作用是获取当前会话的SID,PostgreSQL中没有完全对应的函数,但可以通过以下方式实现类似功能:

  • 获取当前会话的后端进程ID(最常用):
    适用于PostgreSQL 9.6及以上版本,这个值是当前连接对应的服务器进程ID,可作为会话的唯一标识,和Oracle SID的作用类似:

    SELECT pg_backend_pid();
    
  • 获取会话ID(更贴近Oracle SID的概念):
    通过查询pg_stat_activity视图获取官方定义的会话ID,PostgreSQL 10及以上版本使用session_id字段,旧版本可替换为procpid:

    SELECT session_id FROM pg_stat_activity WHERE pid = pg_backend_pid();
    

需要注意的是,PostgreSQL的会话标识体系和Oracle存在差异,没有完全和Oracle SID一一对应的概念,上述两种方式是实际迁移中常用的替代方案。

内容的提问来源于stack exchange,提问作者MAK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:39:17