必须声明标识符'UTILS.IDENTITY_VALUE'

时间:2016-04-04 08:17:21

标签: oracle plsql oracle11gr2 database-trigger

我正在创建DDL脚本以基于现有数据库创建数据库模型。基本上抛光我从 expdp 获得的东西。

由于数据库是Oracle 11gR2,它不支持12c标识列(https://oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1)。 因此,导出的语句使用像https://community.oracle.com/thread/3677631?start=0&tstart=0中提到的序列触发器 - 所以它可能最初是从MS SQL Server转换的,我注意到了。

触发器与

类似
<!--include our little script-->
<script src="https://cdn.rawgit.com/davidmars/bootstrapNavActive/master/BootstrapNavActive.min.js"></script>

<!--initialize the nav element-->
<script>
$( document ).ready(
function(){
    var $mySmartNav=$("#mySmartNav");
    new BootstrapNavActive($mySmartNav);
  }
);
</script>

问题是SQL Developer抱怨“错误(21,3):PLS-00201:标识符'UTILS.IDENTITY_VALUE'必须声明为”

奇怪的是,当我连接到原始数据库并检查触发器时,它是相同的,没有声明或任何'UTILS.IDENTITY_VALUE'。而且很绿。

欢迎任何解释/建议!

1 个答案:

答案 0 :(得分:1)

最有可能的是,新系统上应该有一个名为UTILS的软件包;你也必须从现有系统中复制它。包也可能存在,但您没有看到它(缺少同义词)或没有权限访问它。

如果UTILS不需要其他任何内容(相当不可能但可能),您可以执行以下操作:

 create package UTILS as
    identity_value number(12);
 end UTILS;
 /