问题标签 [plsql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4515 浏览

oracle - 继续循环中的错误

下面的循环调用了一个执行各种“事情”的过程

如果它应该抛出异常,它也会“引发”它。我想抓住它并忽略它,让循环继续处理数组中的下一个值。

谢谢

0 投票
1 回答
4987 浏览

oracle - PL/SQL:从两个函数之间传递的游标中获取

我有一个关于从弱类型游标中获取结果的快速问题,想知道以前是否有人遇到过这个问题?

我的设置如下;

内部功能;

调用函数;

测试线束代码;

如果我运行我的测试工具代码,我得到的错误是;

ORA-06504: PL/SQL: 结果集变量或查询的返回类型不匹配

我不确定是什么导致了这种情况发生。该错误发生在我的测试代码中,但我之前已经使用了数百次完全相同的方法并且没有遇到这个问题。现在唯一的区别是,光标通过两个函数而不是一个函数传递回来。

有谁知道这里可能出现什么问题?我已经用谷歌搜索了它,我能找到的只是强烈键入光标的建议,不幸的是,这对我来说不是一个选择。

感谢任何人都可以提供的任何帮助,干杯。

0 投票
2 回答
1628 浏览

oracle - 网络中断导致跨数据库链接的存储过程查询永远挂起

我支持通过 WAN 查询远程数据库的一些存储过程。网络偶尔会出现故障,但最糟糕的是程序失败并且必须重新启动。

在过去的几周里,情况发生了险恶的转折。而不是失败的程序挂在一个奇怪的锁定状态。它们不能在 Oracle 内部被杀死,只要它们存在,任何运行该过程的其他副本的尝试也会挂起。我们找到的唯一解决方案是使用操作系统中的“kill -9”来终止有问题的程序。其中一些程序几个月甚至几年都没有改变,所以我怀疑数据库或数据库配置中的根本原因。

任何人都知道我们可以做些什么来解决这个问题?或者 PL/SQL 是否具有可以添加到代码中的超时机制,以便我可以创建一个可以以编程方式处理的异常?

0 投票
5 回答
16653 浏览

sql - 忽略 Oracle DUP_VAL_ON_INDEX 异常有多糟糕?

如果用户至少查看过一次对象,我有一张桌子,我正在记录,因此:

这两个字段都不是 NULL 并且一起形成主键。

我的问题是,因为我不在乎有人查看了对象多少次(在第一次之后),所以我有两种处理插入的选项。

  • 执行 SELECT count(*) ... 如果没有找到记录,则插入一条新记录。
  • 总是只插入一条记录,如果它抛出一个 DUP_VAL_ON_INDEX 异常(表明已经有这样的记录),忽略它。

选择第二个选项的缺点是什么?

更新:

我想最好的说法是:“异常引起的开销是否比初始选择引起的开销更糟?”

0 投票
11 回答
195978 浏览

sql - 是否可以从 PL/SQL 块输出 SELECT 语句?

我怎样才能得到一个 PL/SQL 块来输出一个SELECT语句的结果,就像我做了一个普通的一样SELECT

例如如何做一个SELECT喜欢:

暗示 :

不起作用。

0 投票
4 回答
10308 浏览

sql - 在 Oracle 中使用数据透视表的建议

我需要一个报告,我应该为它使用数据透视表。报告将按类别分组。在声明时使用案例不好,因为有很多类别。你可以将 Northwind 数据库视为示例,所有类别将显示为列和报告将显示客户在类别中的偏好。我不知道另一种解决方案,并在 Internet 中看到了用于 Sql Server 的存储过程的示例。除了使用案例之外,你知道一个解决方案吗?

谢谢

0 投票
4 回答
8055 浏览

plsql - 如何备份 PLSQL 数据库?

如何备份 PLSQL 数据库?

0 投票
3 回答
6358 浏览

oracle - 如何使用 PL/SQL 进行 Exp 和 Imp

如何使用 PL/SQL 进行 Exp 和 Imp?

0 投票
3 回答
3093 浏览

oracle - Oracle 函数并发

我目前有一个 INSERT TRIGGER,它在 Oracle 10g 中运行一个自定义函数,该函数生成一个时髦的字母数字代码,用作插入的一部分。

我真的需要确保函数(甚至触发器)是线程安全的,这样如果两个用户同时激活触发器,触发器中使用的函数不会为两个用户返回相同的代码。

触发器中的流程如下:

开始

  1. 根据业务逻辑判断是否需要继续
  2. 运行自定义函数以获取新代码
  3. 使用返回的代码作为插入到不同的表中

结尾

主要问题是,如果在第 2 步运行时,一个单独的线程触发触发器,该触发器也进入第 2 步,并返回与第一个线程相同的代码。(我知道这是一个非常紧张的情况,但我们需要处理它)。

我想到了两种主要的方法:

目前我想到的目前最好的方法是在触发器一开始就以“独占模式”锁定触发器中使用的表,并且指定锁的NOWAIT属性。这样,触发器的每个后续激活都会“停止并等待”锁可用,因此等待其他线程完成触发器。

我很想锁定表任何拒绝读取表,但我似乎可以找到如何在 Oracle 中执行此操作。

我的想法并不理想,但应该可行,但是我很想听听任何可能对此有更好想法的人!

非常感谢您提供的任何帮助。

干杯,马克

0 投票
1 回答
1659 浏览

regex - PL/SQL 函数返回带有正则表达式特殊字符转义的字符串

是否存在现有的 PL/SQL 方法,它接受一个字符串并返回相同的字符串,但在任何正则表达式字符之前都有反斜杠?