当前位置: 首页 > 知识库问答 >
问题:

UTL_RECOMPRECOMP_SERIAL必须申报

唐弘益
2023-03-14

首先,我想指定我正在尝试远程进行此升级。我收到此错误:

2015-04-24:11:59:42[错误]myDB-未能重新编译“DBTYPE”数据库对象:ExcSQL失败:遇到Oracle错误:ORA-06550:第1行,第7列:PLS-00201:标识符“UTL\u RECOMP”。RECOMP_SERIAL’必须声明为ORA-06550:第1行,第7列:PL/SQL:忽略语句(6550)SQL文本:begin utl_RECOMP。重新映射串行(“DBTYPE”);终止

2015-04-24:11:59:42[错误]工作对象执行失败:DBTYPE-进程JAR文件失败:无法重新编译“DBTYPE”数据库对象:ExcSQL失败:遇到Oracle错误:ORA-06550:第1行,第7列:PLS-00201:标识符“UTL\u RECOMP”。RECOMP_SERIAL’必须声明为ORA-06550:第1行,第7列:PL/SQL:忽略语句(6550)SQL文本:begin utl_RECOMP。重新映射串行(“DBTYPE”);终止

2015-04-24:11:59:42[错误]UPGD失败!:myDB-升级错误-工作线程进程错误-DBTYPE-进程JAR文件失败:无法重新编译“DBTYPE”数据库对象:ExcSQL失败:遇到Oracle错误:ORA-06550:第1行,第7列:PLS-00201:标识符“UTL\u RECOMP”。RECOMP_SERIAL’必须声明为ORA-06550:第1行,第7列:PL/SQL:忽略语句(6550)SQL文本:begin utl_RECOMP。重新映射串行(“DBTYPE”);终止

当我尝试对无效对象进行重新编译时。我在互联网上唯一能找到的是,在重新编译时,我应该以sysdba的身份登录,我目前正在这样做。

"Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = " + MyHostName + ")(PORT = 1521))(CONNECT_DATA =" +
"(SERVICE_NAME = " + mySID + ")));DBA Privilege = SYSDBA;" +
"User Id = " + MyID + ";Password = " + MyPW;

我的连接工作正常,因为我可以运行3/4的升级过程,直到我尝试重新编译此特定模式。

Conn = GetConn( MyID, MyPW );
if (DevelopSrvr)
{
   ExcSQL(Conn, "alter session set plsql_debug=true");
}
ExcSQL(Conn, "begin utl_recomp.recomp_serial('" + schema + "'); end;");

这个程序在本地运行良好,我已经检查了堆栈跟踪,所有变量都返回了预期值。我错过了什么吗?提前感谢

共有2个答案

拓拔俊艾
2023-03-14

以下是与UTL_重新编译包相关的操作说明:

此包必须使用SQL*PLUS运行。

该包使用作业队列进行并行重新编译

您必须以SYSDBA身份连接才能运行此脚本。

此包要求已创建状态有效的以下包:

标准(STANDARD.sql)

DBMS_STANDARD(dbmsstdx.sql)

DBMS_作业(dbmsjob.sql)

DBMS_RANDOM(dbmsrand.sql)

夏何平
2023-03-14

根据您的输出:

“UTL\u RECOMP.RECOMP\u SERIAL”必须声明为ORA-06550:第1行,第7列:

消息表示您已登录,但没有sysdba权限。

在目标数据库中验证:

1)远程登录密码文件设置为独占

SQL> show parameter password

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE

2.)您用于登录的用户名列在v$pwfile_users曲库视图中(假设您使用Z_TEST数据库帐户作为sysdba进行连接):

SQL> select username,sysdba from v$pwfile_users ;

USERNAME                       SYSDBA
------------------------------ -----
SYS                            TRUE
Z_TEST                         TRUE

以下示例假设“z_test/welcome1”帐户凭据和“db99”作为目标服务名称:

sqlplus z_测试/welcome1@db99作为sysdba

SQL> set serveroutput on
SQL> begin
 2     utl_recomp.recomp_serial('Z_TEST');
 3  end;
 4  /

PL/SQL procedure successfully completed.

提示:当作为sysdba连接时,您的用户名将变为“SYS”。在您的代码中验证这一点。例如:

SQL> show user
USER is "SYS"
 类似资料:
  • 问题内容: 我的head标签中未包含以下代码行,但是我的收藏夹图标仍显示在浏览器中: 包含它的目的是什么? 问题答案: 如果您不调用favicon,则可以使用该标记来指定实际路径(如果您将其放在目录中)。默认情况下,浏览器/网页在根目录中查找。

  • 我是阿帕奇骆驼的新手。我正试图将头和请求体一起发送到Apache Camel中的路由。 我得到以下错误:

  • 根据文档https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-bool-prefix-query.html相当于 是否有一个等效的查询,它等效于

  • 问题内容: 有人在说我必须实施OnFragmentInteractionListener,这是一个错误,但是据我所知我正确地实现了它。任何帮助将不胜感激。 主要活动 导航片段 内容片段 错误 问题答案: 两者中的接口都包含一个具有相同签名的方法,并且正在实现一种方法来尝试覆盖这两个接口。 更改一个或两个方法的签名,然后在中实现两个方法。例如: 导航片段 内容片段 主要活动

  • 本文向大家介绍React必须使用JSX吗?相关面试题,主要包含被问及React必须使用JSX吗?时的应答技巧和注意事项,需要的朋友参考一下 首先解释一下什么是JSX,是JavaScript的语法扩展,可以让我们编写像html一样的代码,在JSX中使用的”元素“,不局限于HTML中的元素,可以是任何一个react组件。 react判断一个元素是HTML元素还是react 组件的原则就是看第一个字母是

  • 问题内容: 将我的war文件部署到tomcat时出现错误: 我四处搜寻,发现log4j.xml的顺序可能是错误的,但应该是正确的。 有什么建议么? 问题答案: 根据错误消息,DTD期望所有元素都在该元素之前。您选择的方式错误。