文档解释
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函数的参数来确保它们被正确地转换为数字并正确记录
• 验证数据字典的完整性,以确保它们不包含无效记录
• 检查数据库中的元数据,以确保它们中没有异常值
• 重新创建调度作业,以防止问题重新发生