Oracle DB-标识符太长

Oracle DB-标识符太长,oracle,plsql,triggers,oracle11g,oracle-sqldeveloper,Oracle,Plsql,Triggers,Oracle11g,Oracle Sqldeveloper,我在SQLDeveloper中创建了一个连接,并向数据库中添加了几个表。此外,我还定义了一些触发器。除了出现“标识符太长”错误之外,它们都工作得很好。我知道30个字符的限制,但我看不出是什么导致了这个特殊的错误。用这段代码,我试图实现短路键 表格: Izvestaj(IzvestajID、Datum、Opis、Tekst、PredmerID、NarucilacID、OsobaID、IzvrsilacID) 预聚体(预聚体、数据、纳齐夫、伊兹夫西拉酸、洛卡西贾德) Izvrsilac(Izvrsi

我在SQLDeveloper中创建了一个连接,并向数据库中添加了几个表。此外,我还定义了一些触发器。除了出现“标识符太长”错误之外,它们都工作得很好。我知道30个字符的限制,但我看不出是什么导致了这个特殊的错误。用这段代码,我试图实现短路键

表格:
Izvestaj(IzvestajID、Datum、Opis、Tekst、PredmerID、NarucilacID、OsobaID、IzvrsilacID)
预聚体(预聚体、数据、纳齐夫、伊兹夫西拉酸、洛卡西贾德)
Izvrsilac(IzvrsilacID,Naziv)
斜体值表示关系(表)的主键

触发器:

create or replace TRIGGER "T_IZM_IZV"
AFTER UPDATE OF IZVRSILACID ON PREDMER
FOR EACH ROW
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
        EXECUTE IMMEDIATE ('ALTER TRIGGER'||'T_ZABRANA_IZM_IZV'||'DISABLE');
        UPDATE IZVESTAJ SET IZVRSILACID=:NEW.IZVRSILACID
        WHERE PREDMERID=:NEW.PREDMERID;
        EXECUTE IMMEDIATE ('ALTER TRIGGER'||'T_ZABRANA_IZM_IZV'||'ENABLE');
END;  

我在表“Predmer”中添加了一些行(Izvrsilac和Izvestaj也插入了一些值),当我试图更改列“IzvrsilacID”(外键)的值时,我得到一个错误:

UPDATE "KORISNIK"."PREDMER" SET IZVRSILACID = '1' WHERE ROWID = 'AAAFBRAABAAALDxAAB' AND ORA_ROWSCN = '675526'
ORA-00972: identifier is too long
ORA-06512: at "KORISNIK.T_IZM_IZV", line 4
ORA-04088: error during execution of trigger 'KORISNIK.T_IZM_IZV'


One error saving changes to table "KORISNIK"."PREDMER":
Row 2: ORA-00972: identifier is too long
ORA-06512: at "KORISNIK.T_IZM_IZV", line 4
ORA-04088: error during execution of trigger 'KORISNIK.T_IZM_IZV'
什么可能导致此错误?我尝试过几种方法,甚至将触发器、表和列重命名为一个字母的名称,但都没有成功。
顺便说一句,很抱歉给你起了个名字。我不想将表名和列名翻译成英文,因为它们的长度不同,这首先似乎会导致错误。

这些行:

EXECUTE IMMEDIATE ('ALTER TRIGGER'||'T_ZABRANA_IZM_IZV'||'DISABLE');
EXECUTE IMMEDIATE ('ALTER TRIGGER'||'T_ZABRANA_IZM_IZV'||'ENABLE');
应该是这样的:

EXECUTE IMMEDIATE ('ALTER TRIGGER '||'T_ZABRANA_IZM_IZV'||' DISABLE');
EXECUTE IMMEDIATE ('ALTER TRIGGER '||'T_ZABRANA_IZM_IZV'||' ENABLE');
请注意添加的空格

如果未添加空格,您正在尝试执行:

ALTER TRIGGERT_ZABRANA_IZM_IZVDISABLE

这显然是行不通的

希望有帮助

ALTER TRIGGERT_ZABRANA_IZM_IZVDISABLE
ALTER TRIGGERT_ZABRANA_IZM_IZVENABLE