如何获取Oracle中命名事务的名称?

2024-05-08

我想在触发器中使用事务的名称,以便将其写入列中。

我尝试了这个(在 SQL Developer 中):

set transaction name 'hello';
select DBMS_TRANSACTION.LOCAL_TRANSACTION_ID from dual;
commit;

但我得到的不是交易名称,而是某种随机值:

transaction NAME succeeded.
SUBSTR(DBMS_TRANSACTION.LOCAL_TRANSACTION_ID,0,20)
--------------------------------------------------
1.25.19794                                         

committed.

如何获取指定交易的名称?


我刚刚尝试过类似的事情,并且对于DBMS_TRANSACTION.LOCAL_TRANSACTION_ID我找回了价值9.7.1270。当我按名称查找交易时,发现以下内容:

  • v$transaction.XIDUSN = 9
  • v$transaction.XIDSLOT = 7
  • v$transaction.XIDSQN = 1270

把它们放在一起,你就得到了9.7.1270。所以(请注意,这可能是错误的 - 我发现的文档没有涵盖这一点),你may能够获取当前交易名称,如下所示:

SELECT Name
FROM v$transaction
WHERE xidusn ||'.'|| xidslot ||'.'|| xidsqn = DBMS_TRANSACTION.LOCAL_TRANSACTION_ID;

我可以确定的一个事实是:v$transaction在执行以下操作之一之前,行不会显示:

  1. INSERT/UPDATE/DELETE/MERGE 类型的操作,or
  2. Call DBMS_TRANSACTION.LOCAL_TRANSACTION_ID 在其自己的- 这意味着仅仅将其放在上面的查询中似乎不足以填充v$transaction row.

但是,如果我执行上述任一操作,查询就会起作用(我现在已经测试了 4 或 5 次),并且由于您将在触发器中尝试它,因此您应该被上面的第 2 项涵盖。

最后一点:v$transaction访问受到相当限制,因此大多数用户将无法看到它。让事情变得复杂化,v$transaction不是实际视图;它是视图的同义词sys.v_$transaction(请注意美元符号之前的下划线),这就是您在授予时需要使用的名称。我很确定您必须以以下身份登录SYSDBA进行拨款 - 我能够查询v$transaction as the SYSTEM用户,但我没有足够的权限GRANT SELECT给另一个用户。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取Oracle中命名事务的名称? 的相关文章

  • 2PC vs Sagas(分布式事务)

    我正在深入了解分布式系统 以及如何在此类系统中维护数据一致性 其中业务事务涵盖多个服务 有界上下文和网络边界 我知道以下两种用于实现分布式事务的方法 2 阶段提交 2PC Sagas 2PC 是一个应用程序协议透明地在平台的支持下利用全球A
  • 即使没有显式事务,SQL Server 也会获取锁吗?

    我第一次阅读有关 MSSQL 锁定的内容 在很多地方 锁定机制概念依赖于事务的存在 我想知道在不涉及任何事务的情况下是否可以锁定 一般来说 当不存在显式事务时 每个 SQL 语句都在自动 自动提交 事务中执行 在这种情况下将应用正常的锁定行
  • PL/SQL 过程成功完成但没有显示任何内容

    我有以下过程代码 create or replace PROCEDURE Ventas cliente p DNI IN CHAR IS CURSOR c pedidos clientes IS SELECT FROM Pedidos ve
  • 当网站停止时,Oracle 数据提供程序会固定 IIS 工作进程

    我们在 Oracle 11g 第 2 版中遇到了一个严重的问题 其中 w3wp 进程接管了整个处理器核心 并且调试显示 Oracle 数据提供程序无限地抛出 ThreadAbortException 开发人员通过执行以下操作发现了此问题 1
  • 关于pl/sql存储程序文本的问题

    我使用 TOAD 进行 PL SQL 开发 在 TOAD 中 当我输入过程名称并按 f4 时 我可以看到该过程的源代码 我认为 TOAD 从 v sqltext 视图获取源代码 为了证实我的想法 我写了一个查询 select from v
  • 如何记录更改列 DDL 操作

    我需要创建一个数据库触发器来记录每个更改 Add Column Modify Column Drop Column 使用Oracle的模式触发器在特定表中执行语句 如何获得 到目前为止我尝试了下面的代码 TRIGGER after ddl
  • DB2 SQL 脚本:如何启动事务并在错误时回滚

    我正在为 DB2 数据库 V9 5 实现 SQL 脚本 以便添加列并重新组织数据 我想从linux命令行执行脚本 db2 vstf migration sql 所有语句在migration sql应该包含在交易中 如果一条语句失败 则必须回
  • Oracle ODP.net 托管驱动程序与非托管驱动程序

    托管和非托管 Oracle ODP Net 驱动程序之间是否存在任何性能基准 即 除了架构 部署简单性之外 迁移到托管驱动程序是否有任何优势 我想分享一些结果 我认为与部署的简便性相比 性能上的小缺陷是值得的 Note seg意味着秒 对于
  • Oracle中如何检测4字节UTF8字符

    我们已经看到oracle中存储了4字节的UTF 8字符 我们需要检测特定列中有多少行包含此类字符 尝试了这里给出的建议 UTF 16 补充字符 https stackoverflow com questions 34720830 how t
  • 使用 to_char 格式化间隔

    以下 SQL 命令 select TO CHAR NVL arg1 arg2 TO DSINTERVAL 0 00 00 00 from table1 生成格式为 000000000 00 03 01 954000 的结果 是否可以在 to
  • 递归 SQL 给出 ORA-01790

    使用 Oracle 11g 第 2 版 以下查询给出 ORA 01790 表达式必须与相应表达式具有相同的数据类型 with intervals time interval AS select trunc systimestamp from
  • Oracle 9i:同义词表不存在?

    我创建了一个包 其中包含一个存储过程 我计划从单独的应用程序调用该存储过程 存储过程将返回架构中所有视图和表的排序列表 为此 它对 DBA TABLES 和 DBA VIEWS 同义词执行简单的选择 如下所示 CREATE OR REPLA
  • FROM 子句中的嵌套括号是否有效的 Oracle SQL 语法?

    此查询使用正确的 Oracle 语法吗 select from dual a where a dummy X 它可以在 11g 和 12c 中运行 但它是真正有效的语法吗 或者这只是一个编译器 错误 将来可能会修复 导致代码失败 我怀疑这是
  • MS Access (Jet) 事务、工作区

    我在提交事务 使用 Access 2003 DAO 时遇到问题 它的表现就好像我从未调用过 BeginTrans 我在 CommitTrans 上收到错误 3034 您尝试在未先开始事务的情况下提交或回滚事务 并且更改将写入数据库 大概是因
  • 分层查询

    我希望我能够解释困扰我的问题 我有以下分层数据集 这只是 34K 记录的子集 PARENT ID CHILD ID EXAM TUDA12802 TUDA12982 N TUDA12982 TUDA12984 J TUDA12984 TUD
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • REgex从oracle中的字符串中获取数字

    我有以下格式的字符串 阿克拉姆 88 jamesstree 20140418 阿克兰 8 约翰街 20140418 阿克兰 888 johnstreet 20140418 现在我只想检索 88 8 和 888 值 我为此编写了以下查询 SU
  • LiveSQL 不断向我显示:ORA-00933:SQL 命令未正确结束[重复]

    这个问题在这里已经有答案了 INSERT INTO Countries Country Capital Cities VALUES Philippines Manila 122 USA Washington 19495 Brazil Bra
  • Oracle 中的日期字符串(以毫秒为单位)

    我想将以下字符串转换为日期 2004 09 30 23 53 48 140000000 I tried to date YYYY MM DD HH24 MI SS FF9 But PL SQL http en wikipedia org w
  • 该操作对于事务状态无效

    我有一个TransactionScope 堵塞 它总是卡在插入语句中 它在活动监视器中显示为阻塞任务 因此它阻塞 SQL 服务器 并且在超时后 我收到此错误 该操作对于事务的状态无效 出了什么问题 const TransactionScop

随机推荐

  • AWS ALB 截断 HTTP 响应

    我有一个带有目标组的 ALB 和运行 PHP API 的 ECS 集群 我正在尝试查询 API 以获得 CSV 响应 但如果请求通过 ALB 我会得到被截断的结果 当我通过 SSH 连接到运行集群的 EC2 实例并尝试手动运行curl 通过
  • WP 用户注册 - 也可以立即选择他/她的密码

    这是一个非常简短的前端注册指南 但我在密码方面遇到了一个小问题 我禁用了用户注册时发送的带有密码生成的电子邮件 Don t Send Notification Email To Registered User if function exi
  • 获取我的 VC++ 代码使用的符号列表

    我正在构建一个处理 VC 源代码的工具 为此 我需要获取符号列表 包括我的代码使用的局部变量名称及其类型 我知道Visual C 2010已经提供了一个 bsc文件 允许对象浏览器快速定位符号 但这是一个交互式工具 我需要获取文件中的符号列
  • 如何在ListView中添加页脚?

    我正在开发一个应用程序 在我的应用程序中 我使用 Listview 使用 dom 解析显示数据 我想在列表视图中添加页脚 当我单击页脚时将更多数据添加到列表视图中 我附加了图像 我想要该设计和流程 请参考image1和imgae2 我在红色
  • 如何更改 PyGame 中声音或音乐的音量?

    如何更改 PyGame 中的音量 例如通过设置更改音量 我制作了 UI 元素 只需要知道如何更改音量即可 我知道我说不清楚 但你可以理解我 请帮忙 更改音量取决于您是否正在播放pygame mixer Sound https www pyg
  • 如何在 data-disable-with 上设置 html 到 Rails Submit_tag

    我有一个使用 bootstrap 的 RoR 应用程序 我正在尝试将 fontawesome html 图标标签应用于 Submit tag 帮助程序 但它似乎不受支持 当我单击 提交 时 禁用内容仅显示为字符串 而不是解释为 html 尽
  • Bellman-Ford 算法检测什么?负重还是负循环?

    如果给定一个图 现在我们要从源头计算最短路径 现在 如果一条边具有负权重 但在到达目的地时有边到后边返回到该边 我的意思是如果没有循环 那么我们就没有负循环 但是here http en wikipedia org wiki Bellman
  • 跟踪 pthread 调度

    我想做的是创建某种图表 详细说明 Linux 中 两个 线程的执行情况 我不需要查看线程的作用 只需查看它们何时被安排以及持续多长时间 基本上是一条时间线 在过去的几个小时里 我一直在互联网上搜索跟踪 pthread 调度的方法 不幸的是
  • 将 KeyUp 作为参数传递 WPF 命令绑定文本框

    我有一个文本框 KeyUp 事件触发器连接到 WPF 中的命令 我需要将按下的实际键作为命令参数传递 该命令执行得很好 但处理它的代码需要知道按下的实际键 记住这可能是一个回车键或不仅仅是一个字母的任何键 所以我无法从 TextBox te
  • 为什么 `boost::any` 比 `void*` 更好?

    有什么先天优势boost any and boost any cast提供超过使用void and dynamic cast 优点是boost any比类型安全得多void E g int i 5 void p i static cast
  • nested_form/cocoon:可以将表行用于嵌套字段吗?

    我通常不使用表格作为表单 但是当有嵌套表单时 使用nested form或cocoon gem时 可以将每组表单元素放在表格行中吗 对我来说 这似乎非常直观 表中的每一行都代表一个对象 但是 nested form 和 cocoon gem
  • 提取 zip 文件时 Parallel.ForEach 抛出异常

    我正在阅读 zip 文件的内容并尝试提取它们 var allZipEntries ZipFile Open zipFileFullPath ZipArchiveMode Read Entries 现在 如果我提取使用 Foreach 循环
  • ASP.NET 中的 JavaScript 事件处理程序

    我有以下 iframe 控件 旨在成为类似 facebook 的按钮 iframe gt 我在上面定义了 javascript 函数 如下所示
  • 来自 geoJSON 的 Google 地图航点

    我想从 geoJSON 文件加载行程 目前来说 它是有效的 但只有两点 但我需要添加 4 或 5 个航路点 我的代码只读取前两个点并将它们设置为起点和目的地 这是我的代码 google maps event addListener map
  • 如何从 SQL Server 的表中获取列名?

    我想查询一个表的所有列的名称 我发现如何做到这一点 Oracle https stackoverflow com q 452464 419956 MySQL https stackoverflow com q 193780 419956 P
  • jQuery UI 和原型冲突

    我正在 Perl 中向我们的网站添加一个新表单 不是我的选择 表单会自动生成大量 html 以创建一致的外观 我的问题在于遗留系统在整个页面 包括加载时 中使用原型来处理各种事情 不过我想使用 jQuery 主要是 jQuery UI 中的
  • 在 Android 中使用 SQL (JDBC) 数据库

    在旧的 Java 应用程序中 我使用以下代码连接到 SQL 数据库并将其用于某些查询 private Connection dbConnection null System setProperty derby system home C C
  • 如果数组重叠,则折叠多行数组

    我在 PostgreSQL 9 3 中有一个表 其中包含一个列 每行包含一个数组 我正在努力寻找崩溃的方法 共享相同元素的数组行 Examples 简单重叠 给定以下两行数组 1 2 3 5 3 6 9 结果将是一行包含 5 1 2 3 6
  • 将 ASP.NET TextBox 呈现为 HTML5 输入类型“Number”

    当 ASP NET TextBox 呈现时 它会生成
  • 如何获取Oracle中命名事务的名称?

    我想在触发器中使用事务的名称 以便将其写入列中 我尝试了这个 在 SQL Developer 中 set transaction name hello select DBMS TRANSACTION LOCAL TRANSACTION ID