我有这个Oracle查询在一个环境中运行良好,并在其他环境中发生错误。两个环境都有完全相似的数据库。Oracle 11g - 查询时出错
DECLARE
v_temp NUMBER(1,0) := 0;
BEGIN
BEGIN
SELECT 1 INTO v_temp FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'FK_PDUCRC_MtrPrgAssc';
EXCEPTION WHEN NO_DATA_FOUND THEN v_temp := 0;
END;
IF v_temp = 0 THEN
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE METERCONFIGPDUCRC
ADD CONSTRAINT FK_PDUCRC_MtrPrgAssc
FOREIGN KEY (MeterProgramAssocID)
REFERENCES MeterProgramAssoc(MeterProgramAssocID)';
END;
END IF;
END;
错误是 -
这样的引用约束已经存在于表。
请帮我解决这个问题。
也许问题是你正在检查约束的存在与大小写?尝试使用upper(constraint_name)= upper('...') – Aleksej
完全相似的数据库我最喜欢的类型。 :P FK_PDUCRC_MTRPRGASSOC已经存在于'失败的环境中吗? '从all_Constraints中选择*其中constraint_Name ='FK_PDUCRC_MTRPRGASSC'在环境上失败......如果记录返回...它已经存在并且错误是正确的。 – xQbert
我无法在查询中进行更改,因为它存在于我们的客户端版本中。在oracle数据库中有没有可以解决这种大小写混淆的参数或设置? – VIVEK