简体   繁体   English

导致 Oracle 错误的 SQL 插入语句

[英]SQL Insert Statement causing error in Oracle

I'm trying to do this我正在尝试这样做

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');

but I get an error但我收到一个错误

Error starting at line : 22 in command -从第 22 行开始的错误 -
INSERT INTO INSPECTIONOFFICE (INSPOFFICE_ID, INSPOFFICE_NAME, INSPOFFICE_STREET, INSPOFFICE_CITY, INSPOFFICE_STATE, INSPOFFICE_ZIPCODE, INSPOFFICE_CONTPERSONFNAME, INSPOFFICE_CONTPERSONLNAME, INSPOFFICE_CONTPERSONPHONE, INSPOFFICE_CONTPERSONEMAIL) INSERT INTO INSPECTIONOFFICE(INSPOFFICE_ID、INSPOFFICE_NAME、INSPOFFICE_STREET、INSPOFFICE_CITY、INSPOFFICE_STATE、INSPOFFICE_ZIPCODE、INSPOFFICE_CONTPERSONFNAME、INSPOFFICE_CONTPERSONLNAME、INSPOFFICE_CONTPERSONPHONE、INSPOFFICE_CONTPERSONPHONE)
VALUES (12, 'InspectionOffice1', '121 Ames st', 'Omaha', 'NE', 68128, 'Brad', 'Foley', '4022853487', 'BradFoley@gmail.com')值 (12, 'InspectionOffice1', '121 Ames st', 'Omaha', 'NE', 68128, 'Brad', 'Foley', '4022853487', 'BradFoley@gmail.com')
Error at Command Line : 22 Column : 13命令行错误:22 列:13
Error report -错误报告 -
SQL Error: ORA-04098: trigger 'JMEEK.INSPECTIONOFFICE_INSPECTIONOFF' is invalid and failed re-validation SQL 错误:ORA-04098:触发器“JMEEK.INSPECTIONOFFICE_INSPECTIONOFF”无效且重新验证失败
04098. 00000 - "trigger '%s.%s' is invalid and failed re-validation" 04098. 00000 - “触发器 '%s.%s' 无效,重新验证失败”
*Cause: A trigger was attempted to be retrieved for execution and was found to be invalid. *原因:尝试检索触发器以执行,但发现无效。 This also means that compilation/authorization failed for the trigger.这也意味着触发器的编译/授权失败。
*Action: Options are to resolve the compilation/authorization errors, disable the trigger, or drop the trigger. *操作:选项用于解决编译/授权错误、禁用触发器或删除触发器。

Any idea how to fix this?知道如何解决这个问题吗?

seems you do not have permission access to the trigger JMEEK.INSPECTIONOFFICE_INSPECTIONOFF似乎您无权访问触发器 JMEEK.INSPECTIONOFFICE_INSPECTIONOFF

or have some compilation problem with it...或者有一些编译问题...

you should take a look in the trigger.你应该看看触发器。

or if you don't know what a trigger is, call a experienced job's teammate.或者,如果您不知道什么是触发器,请致电有经验的工作的队友。 :) :)

btw, if you are alone, and it don't matter too much.. you can disable / drop the trigger..顺便说一句,如果你是一个人,也没关系..你可以禁用/删除触发器..

this command disable, you can enable later此命令禁用,您可以稍后启用

ALTER TRIGGER JMEEK.INSPECTIONOFFICE_INSPECTIONOFF DISABLE;

this command drop the trigger, you will lose it forever (if you don't have a backup)此命令删除触发器,您将永远失去它(如果您没有备份)

drop trigger JMEEK.INSPECTIONOFFICE_INSPECTIONOFF;

The trigger JMEEK.INSPECTIONOFFICE_INSPECTIONOFF , which I am guessing you wrote because it's in the JMEEK schema, which (again I'm guessing) seems to be yours, is invalid, meaning it has compilation errors.触发器JMEEK.INSPECTIONOFFICE_INSPECTIONOFF ,我猜是你写的,因为它在JMEEK模式中,(我再次猜测)似乎是你的,是无效的,这意味着它有编译错误。 To find out what those errors are you should execute the query要找出这些错误是什么,您应该执行查询

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

None of us can do much else for you because we don't know what this trigger looks like.我们没有人能为您做太多其他事情,因为我们不知道这个触发器是什么样子。 If you need to see the source code you can execute the following query:如果需要查看源代码,可以执行以下查询:

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

Or you can use an IDE such as Oracle's free SQL Developer product which will make all this a lot easier for you.或者,您可以使用 IDE,例如 Oracle 的免费 SQL Developer 产品,这将使您更轻松地完成所有这些工作。

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

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