首先,我想指定我正在尝试远程升级。我收到此错误:
2015-04-24:11:59:42 [错误] myDB - 无法重新编译' DBTYPE' 数据库对象:ExcSQL失败:遇到Oracle错误:ORA-06550: 第1行第7列:PLS-00201:标识符' UTL_RECOMP.RECOMP_SERIAL' 必须声明ORA-06550:第1行第7列:PL / SQL:语句 ignore(6550)SQL Text:begin utl_recomp.recomp_serial(' DBTYPE'); 端;
2015-04-24:11:59:42 [错误] WorksObjects执行失败:DBTYPE - 进程JAR文件失败:无法重新编译' DBTYPE'数据库 对象:ExcSQL失败:遇到Oracle错误:ORA-06550:第1行, 第7列:PLS-00201:标识符' UTL_RECOMP.RECOMP_SERIAL'一定是 声明ORA-06550:第1行第7列:PL / SQL:忽略语句(6550) SQL Text:begin utl_recomp.recomp_serial(' DBTYPE');端;
2015-04-24:11:59:42 [错误] UPGD失败! :myDB - 升级错误 - 工作线程进程错误 - DBTYPE - 处理JAR文件失败: 无法重新编译' DBTYPE'数据库对象:ExcSQL失败:Oracle 遇到错误:ORA-06550:第1行第7列:PLS-00201:标识符 ' UTL_RECOMP.RECOMP_SERIAL'必须声明ORA-06550:第1行,列 7:PL / SQL:忽略语句(6550)SQL Text:begin utl_recomp.recomp_serial(' DBTYPE&#39);端;
当我尝试重新编译无效对象时。我唯一可以在互联网上找到的是,当重新编译时,我应该以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;");
这个程序在本地运行正常,我检查了堆栈跟踪,所有变量都返回了预期的值。有什么我想念的吗?提前致谢
答案 0 :(得分:1)
以下是与UTL_RECOMP包有关的操作说明:
必须使用SQL * PLUS运行此程序包。
此程序包使用作业队列进行并行重新编译。
您必须连接AS SYSDBA才能运行此脚本。
此软件包需要使用VALID状态创建以下软件包:
标准(standard.sql)
DBMS_STANDARD(dbmsstdx.sql)
DBMS_JOB(dbmsjob.sql)
DBMS_RANDOM(dbmsrand.sql)