文档解释
ORA-01757: Must specify an object number
Cause: Expecting an object number but something else was specified.
Action: Correct the error and reissue the command.
ORA-01757错误提示是“必须指定一个对象编号”,一般是在在给ORACLE执行ALTER SESSION或者ALTER SYSTEM时出现的。
官方解释
当没有对对象编号的指定,ALTER SESSION 或 ALTER SYSTEM 会返回一个ORA-01757错误。 SESSION 和 SYSTEM 结构中的子句,例如 PERSISTENT_SETTINGS, MUST RESTRICT 必须指定一个特定的对象编号来指定特定的设置,而没有指定,就会返回ORA-01757。
常见案例
比如执行 ALTER SESSION SET __MAX_INDEX_KEYS = ’30’; 时,如果 MAX_INDEX_KEYS 是 SYSTEM 级别,则需要在末尾加上对应对象编号(缺省为0),正确的语句应该是 ALTER SYSTEM SET __MAX_INDEX_KEYS=30 SCOPE=MEMORY;
正常处理方法及步骤
1. 查看具体哪个参数需要指定对象编号,然后指定一个合理的值,执行 ALTER SESSION 或 ALTER SYSTEM 时需要明确指定这个参数,语法如下:
ALTER SYSTEM SET = SCOPE= OBJECT_ID=
2. 确定对象编号:一般情况下缺省就是 0,但是可以在 V$PARAMETER 表中通过 OBJECT_ID 列查看当前有效的对象编号;
3. 注意 SESSION 和 SYSTEM 级别参数,一般情况下如果没有给定一个对象,就会使用缺省值,如果指定了一个 OBJECT_ID,就表明是一个特殊级别的参数,只会对那一个对象有效。