ORA-56715: string resource plan contains a reserved word
Cause: The specified plan name is prefixed with a reserved prefix such as FORCE or SCHED.
Action: Do not prefix resource plan name with FORCE or SCHED.
ORA-56715 错误指明要使用的资源计划中包含了一个预留关键词。
ORA-56715:字符串资源计划中包含保留的关键字。
该错误一般会出现在调用DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE()函数时,该函数用于创建一个新的资源计划指令,该函数接受一个字符串作为参数,该字符串包含了资源计划指令的定义,如果其中包含了数据库中任何一个预留关键字(如:VARCHAR2,NUMBER,DATE,TIMESTAMP),则会报出此错误。
常见案例
此错误一般会出现在根据用户传递的参数创建T_Test表时,如:
CREATE TABLE T_Test (Id Number,Name VARCHAR2(20),CreateTime Timestamp)
在这个例子中,Id, Name和CreateTime都是数据库中的预留关键字,会导致ORA-56715错误发生。
正常处理方法及步骤
1. 检查定义资源计划时使用的字段,确保没有使用任何预留关键字;
2. 如果存在预留关键字,可以将其更改为其他词语,比如将VARCHAR2替换为CHAR;
3. 使用DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE()函数检查其参数中资源计划中是否包含预留关键字;
4.如果有预留关键字,应当将其删除或更改后再次尝试;
5.可以在使用DBMS_RESOURCE_MANAGER时使用触发器,以确保执行DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE()时所传递的参数中不包含预留关键字。