簡體   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