繁体   English   中英

导致 Oracle 错误的 SQL 插入语句

[英]SQL Insert Statement causing error in Oracle

我正在尝试这样做

INSERT INTO INSPECTIONOFFICE (INSPOFFICE_ID, INSPOFFICE_NAME, INSPOFFICE_STREET, INSPOFFICE_CITY, INSPOFFICE_STATE, INSPOFFICE_ZIPCODE, INSPOFFICE_CONTPERSONFNAME, INSPOFFICE_CONTPERSONLNAME, INSPOFFICE_CONTPERSONPHONE, INSPOFFICE_CONTPERSONEMAIL)
VALUES (12, 'InspectionOffice1', '121 Ames st', 'Omaha', 'NE', 68128, 'Brad', 'Foley', '4022853487', 'BradFoley@gmail.com');

但我收到一个错误

从第 22 行开始的错误 -
INSERT INTO INSPECTIONOFFICE(INSPOFFICE_ID、INSPOFFICE_NAME、INSPOFFICE_STREET、INSPOFFICE_CITY、INSPOFFICE_STATE、INSPOFFICE_ZIPCODE、INSPOFFICE_CONTPERSONFNAME、INSPOFFICE_CONTPERSONLNAME、INSPOFFICE_CONTPERSONPHONE、INSPOFFICE_CONTPERSONPHONE)
值 (12, 'InspectionOffice1', '121 Ames st', 'Omaha', 'NE', 68128, 'Brad', 'Foley', '4022853487', 'BradFoley@gmail.com')
命令行错误:22 列:13
错误报告 -
SQL 错误:ORA-04098:触发器“JMEEK.INSPECTIONOFFICE_INSPECTIONOFF”无效且重新验证失败
04098. 00000 - “触发器 '%s.%s' 无效,重新验证失败”
*原因:尝试检索触发器以执行,但发现无效。 这也意味着触发器的编译/授权失败。
*操作:选项用于解决编译/授权错误、禁用触发器或删除触发器。

知道如何解决这个问题吗?

似乎您无权访问触发器 JMEEK.INSPECTIONOFFICE_INSPECTIONOFF

或者有一些编译问题...

你应该看看触发器。

或者,如果您不知道什么是触发器,请致电有经验的工作的队友。 :)

顺便说一句,如果你是一个人,也没关系..你可以禁用/删除触发器..

此命令禁用,您可以稍后启用

ALTER TRIGGER JMEEK.INSPECTIONOFFICE_INSPECTIONOFF DISABLE;

此命令删除触发器,您将永远失去它(如果您没有备份)

drop trigger JMEEK.INSPECTIONOFFICE_INSPECTIONOFF;

触发器JMEEK.INSPECTIONOFFICE_INSPECTIONOFF ,我猜是你写的,因为它在JMEEK模式中,(我再次猜测)似乎是你的,是无效的,这意味着它有编译错误。 要找出这些错误是什么,您应该执行查询

SELECT *
  FROM ALL_ERRORS
  WHERE OWNER = 'JMEEK' AND
        NAME = 'INSPECTIONOFFICE_INSPECTIONOFF'
  ORDER BY SEQUENCE

我们没有人能为您做太多其他事情,因为我们不知道这个触发器是什么样子。 如果需要查看源代码,可以执行以下查询:

SELECT LINE, TEXT
  FROM ALL_SOURCE
  WHERE OWNER = 'JMEEK' AND
        NAME = 'INSPECTIONOFFICE_INSPECTIONOFF'
  ORDER BY LINE

或者,您可以使用 IDE,例如 Oracle 的免费 SQL Developer 产品,这将使您更轻松地完成所有这些工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM