ORA-31676: illegal value for number of workers, string

文档解释

ORA-31676: illegal value for number of workers, string

Cause: Called create worker processes with an illegal number of workers specified.

Action: Make sure that the number of workers value is greater than 0 and less than the maximum value for the platform (normally 32767). If this error occurs from a Data Pump client (e.g. expdp or impdp) and you specified the parallel parameter, try the operation again with a smaller value for the parallel parameter. If the error occurs again, contact Oracle Customer Support and report the error.

ORA-31676:非法的工作者数量,字符串

错误说明

ORA-31676是由于在对数据字典中的 Worker_Lab 或者 Worker_Name 列使用非数字值(例如一个字符串)导致的。当OTL来构建它们时,数据库将抛出此错误。

常见案例

此错误经常发生在使用 PL/SQL 静态包 DBMS_SCHEDULER 和 DBA_SCHEDULER 对象时。

在 PL/SQL 中,它可能出现在调用 DBMS_SCHEDULER.START_JOB 和 DBMS_SCHEDULER.START_JOB_V2 函数时。

对DBA_SCHEDULER,此情况可以发生在执行 SET_WORKER 和 SET_NS_WORKER 函数时。

解决方法

要解决此问题,请检查这些函数调用的参数,该参数必须是可以转换为数字的指定类型,或者至少是NULL和空字符串“”。

此外,必须使用空字符串来指定空值。

其他相关解决方法包括:

• 检查数据库中存在的其他计划任务,看看它们是否正确执行

• 使用PL / SQL来确保 Worker_Lab 或 Worker_Name 列的值正确(使用“alter session”语句)

• 更改PL / SQL函数的参数来确保它们被正确地转换为数字并正确记录

• 验证数据字典的完整性,以确保它们不包含无效记录

• 检查数据库中的元数据,以确保它们中没有异常值

• 重新创建调度作业,以防止问题重新发生

你可能感兴趣的