问题标签 [ora-04088]

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 投票
2 回答
1239 浏览

sql - 插入或更新销售项目后的 oracle 触发器

我有这个表,它代表一个弱实体,是一个用于介绍订购项目的典型表:插入 ITEM_FORNECIMENTO 值(a_orderId,a_prodId,a_prodQtd,a_buyPrice);

我希望我的触发器更新最后一列(没有 iva 的产品的总价格)以执行此操作:totalPrice= totalPrice*(1+(iva/100),每次我在该表上插入或更新条目时。

所以,我想出了这个,但在处理新旧价值观时我完全错了。

有人可以帮忙重写这段代码吗?我收到错误:ORA-01422:精确提取返回的行数超过请求的行数 ORA-06512:在“FUSION.T_REPLACETOTAL”,第 8 行 ORA-04088:执行触发器“FUSION.T_REPLACETOTAL”时出错

0 投票
3 回答
1595 浏览

sql - 尝试在 oracle 中触发时出错

我正在尝试使用 ORACLE SQL DEVELOPER 在 ORACLE 中进行触发,我会检查作为开始日期预订到预订日期或服务费日期输入的日期是否等于或大于记录中插入的当前日期.

这些是我表中的字段

这是我的代码:

这是我尝试运行 TRIGGER 时遇到的错误

保存对表“MIGRARBD”的更改时出错。“SERVICE”:

我希望你能帮助......并原谅我的英语

0 投票
3 回答
10665 浏览

sql - 触发错误 ORA-04092 ORA-04088

我创建了一个触发器,如下所示:

我正在尝试在 trigger_1 中插入一行

它给了我错误:

有人可以帮忙吗?

0 投票
2 回答
1815 浏览

sql - 触发器中的 UTL_FILE.FCOPY 问题

我是触发器的新手。我在下面创建了一个触发器:

创建触发器时没有编译错误。但是当我试图在表中插入一个条目时,我收到以下错误。

有人可以帮忙吗?

编辑:插入语句如下:

在 unix 上:

0 投票
2 回答
9104 浏览

sql - 变异,触发器/函数可能看不到它 - 执行触发器期间出错

我已经制作了这个触发器,并在表中插入行时 - TEST_TRNCOMPVISIT 它给出了以下错误 -

发生以下错误:

ORA-04091:表 TEST.TEST_TRNCOMPVISIT 正在变异,触发器/函数可能看不到它
ORA-06512:在“TEST.UPDATE_TEST_280510”,第 4 行
ORA-06512:在“TEST.UPDATE_TEST_280510”,第 10 行
ORA-04088:在执行触发器'TEST.UPDATE_TEST_280510'

0 投票
1 回答
2298 浏览

java - Oracle 触发器失败的原因可能是什么?

首先,让我简要解释一下我的应用程序是如何工作的:

该应用程序处理交易,这些交易以 XML 文档的形式存储在我们的数据库 (Oracle 11g) 中。包含这些信息的表定义如下:

当我们在这个表中更新或插入新项目时,我们有一个触发器,它将读取(使用 XPath)这个 XML,并填充其他一些元数据表。

一切正常,除了在我的机器上。

现在的问题

当我在我的机器上运行应用程序时(即 Tomcat 在我的 Eclipse 中运行,但连接到 Homologation DB),触发器失败并出现以下错误:

抱歉,出于安全原因,我不能把触发器放在这里。请注意,第 628 行位于触发代码的末尾。

我的测试

所以我试图理解为什么这个错误发生在我的机器上(因为它只发生在我的机器上,我的同事都没有遇到这个问题)。我不能说它什么时候开始停止工作,也许是我最近换了电脑?

首先,我检查了源代码,然后是我的数据库连接,但一切似乎都是正确的。我还切换到调试模式以查看发送到数据库的 XML,或者至少查看我们的HibernateXMLType(它是 的扩展org.hibernate.usertype.UserType,用于将我们的 XML 转换为 Oracle 可读的数据)。但这里也没有发现任何错误。

我为您节省了许多在我这边完成的测试,但我最新的测试之一是获得一个新的 Tomcat 服务器,并部署一个部署在环境中的 WAR(例如 Homologation)。然后,我执行了相同的测试,但触发器仍然失败。

到目前为止,我已经排除了以下嫌疑人:

  • 源代码,因为我还从部署在环境中且工作正常的 WAR 中测试了应用程序;
  • 数据库本身,因为我连接到与工作环境相同的数据库。我也尝试了另一个数据库,结果是一样的。
  • 用于我的测试的数据,因为如果我尝试保存相同的交易,但使用 Homologation 环境,它会起作用。
  • JDK,因为我也将 JDK 更改为新的;
  • Eclipse,因为我最近的测试是在 Eclipse 之外完成的;
  • Tomcat 服务器,因为我也尝试过新的 Tomcat。

我想知道的是我的 Windows XP 环境是否有一些特定的编码配置,它“转换”XML 中的一些数据并制作它们

我的问题

  • 我在测试中可能忘记了哪些元素?
  • 有没有办法准确地知道 Oracle 触发器处理的 XML(如果可能的话,不用在 Oracle 实例上安装任何东西,因为我对它没有任何控制权)?

我知道我没有提供很多信息,但是如果您能给我一些提示或想法,我将不胜感激!

问候。


技术信息: Java 1.6、Oracle 11g、Tomcat 5.5.23、JSF 1.2、Hibernate 3.3

0 投票
2 回答
65132 浏览

sql - 触发器执行期间出错 - ORA-06512 - ORA-04088

我有这些桌子

CELL(CellId, x0, y0, x1, y1, CurrentPhone#, MaxCalls)
TELEPHONE(PhoneNo, x, y, PhoneState)
STATE_CHANGE(ChangeId, TimeStamp, PhoneNo, x, y, ChangeType)

我必须创建这个触发器(触发器是强制性的)

更改最大活动呼叫数:蜂窝电话网络可能会减少与单个小区相关的最大活动呼叫数以管理问题(减少CELL表中的MaxCalls)。更新单个单元格的MaxCalls属性可能会导致不一致的情况,即CELL表中的MaxCalls变得小于所考虑单元格中当前活动电话的数量(PhoneState='Active') 。如果是这样,则相应的MaxCalls属性需要使用当前活动电话的数量进行更新(PhoneState='Active')在考虑的单元格中

我写了这个触发器

触发器编译没有问题;然后我写了更新声明:

但我得到了这些错误:

  1. 更新单元格
  2. SET MaxCalls = MaxCalls-2;

我在触发器中找不到任何问题;怎么了?

0 投票
0 回答
89 浏览

sql - SQL Developer 错误:ORA-06512 和 ORA-04088

当我尝试错误地插入 T_PR_DIZ_FARMACO 时,触发器可以工作,但出现以下错误:

Errore durante il salvataggio delle modifiche nella tabella "BMF"."T_PR_DIZ_FARMACO": Riga 2: ORA-20013: La lunghezza del MINSAN deve essere di 9 cifre ORA-06512: a "BMF.TR_T_PR_FARMACO", line 8 ORA-04088: errore durante esecuzione del trigger 'BMF.TR_T_PR_FARMACO' ORA-06512: 第 1 行

(翻译)

在表“BMF”中保存更改时出错。“T_PR_DIZ_FARMACO”:第 2 行:ORA-20013:MINSAN 的长度必须为 9 位 ORA-06512:到“BMF.TR_T_PR_FARMACO”,第 8 行 ORA-04088:执行触发器“BMF.TR_T_PR_FARMACO”时出错 ORA-06512 : 一行 1