SQL 中的无效引用名称,无论名称如何
Invalid Referencing Name in SQL regardless of name
我需要一些关于我正在尝试创建的 SQL 触发器的帮助。我一直收到错误
ORA - 04074: invalid REFERENCING name
根据我的查找,这表明我提供的引用名称是关键字,但我使用了多个名称并且总是 运行 出现相同的错误。
代码如下:
CREATE OR REPLACE TRIGGER CatchSightInserts
AFTER INSERT ON SIGHTINGS
REFERENCING NEW ROW AS nrw
WHEN (nrw.LOCATION IN (SELECT LOCATION
FROM FEATURES
WHERE CLASS = 'SUMMIT'))
PRINT 'An invalid entry was inserted.'
END
/
我也试过将第 3 行更改为
REFERENCING NEW ROW AS NewRow
万一是这个名字引起了问题,但错误仍然存在。我对 SQL 比较陌生,所以任何帮助都将非常有价值。
提前致谢!
你漏掉了一个 BEGIN
字和 FOR EACH ROW
我认为你需要它,你还漏掉了打印命令后的分号 ;
(我不确定 Oracle 中是否存在) 以及 END
:
之后
CREATE OR REPLACE TRIGGER CatchSightInserts
AFTER INSERT ON SIGHTINGS
REFERENCING NEW ROW AS nrw
FOR EACH ROW
WHEN (nrw.LOCATION IN (SELECT LOCATION
FROM FEATURES
WHERE CLASS = 'SUMMIT'))
BEGIN
PRINT 'An invalid entry was inserted.';
END;
/
这个问题是PL/SQL。
引用的语法为:
REFERENCING NEW AS nrw
没有"ROW".
正如 Farheg 所说,您缺少每一行,打印不是您想要的。您可能不得不提出异常。但这是一个猜测。
阅读语法 (11g):
http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/create_trigger.htm#LNPLS01374
我需要一些关于我正在尝试创建的 SQL 触发器的帮助。我一直收到错误
ORA - 04074: invalid REFERENCING name
根据我的查找,这表明我提供的引用名称是关键字,但我使用了多个名称并且总是 运行 出现相同的错误。
代码如下:
CREATE OR REPLACE TRIGGER CatchSightInserts
AFTER INSERT ON SIGHTINGS
REFERENCING NEW ROW AS nrw
WHEN (nrw.LOCATION IN (SELECT LOCATION
FROM FEATURES
WHERE CLASS = 'SUMMIT'))
PRINT 'An invalid entry was inserted.'
END
/
我也试过将第 3 行更改为
REFERENCING NEW ROW AS NewRow
万一是这个名字引起了问题,但错误仍然存在。我对 SQL 比较陌生,所以任何帮助都将非常有价值。
提前致谢!
你漏掉了一个 BEGIN
字和 FOR EACH ROW
我认为你需要它,你还漏掉了打印命令后的分号 ;
(我不确定 Oracle 中是否存在) 以及 END
:
CREATE OR REPLACE TRIGGER CatchSightInserts
AFTER INSERT ON SIGHTINGS
REFERENCING NEW ROW AS nrw
FOR EACH ROW
WHEN (nrw.LOCATION IN (SELECT LOCATION
FROM FEATURES
WHERE CLASS = 'SUMMIT'))
BEGIN
PRINT 'An invalid entry was inserted.';
END;
/
这个问题是PL/SQL。
引用的语法为:
REFERENCING NEW AS nrw
没有"ROW".
正如 Farheg 所说,您缺少每一行,打印不是您想要的。您可能不得不提出异常。但这是一个猜测。 阅读语法 (11g): http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/create_trigger.htm#LNPLS01374