ORA-01743: only pure functions can be indexed ORACLE 报错 故障修复 远程处理
文档解释
ORA-01743: only pure functions can be indexed
Cause: The indexed function uses SYSDATE or the user environment.
Action: PL/SQL functions must be pure (RNDS, RNPS, WNDS, WNPS). SQL expressions must not use SYSDATE, USER, USERENV(), or anything else dependent on the session state. NLS-dependent functions are OK.
ORA-01743: 只有纯函数才能被索引化
官方解释
ORA-01743发生在当尝试把一个聚合函数或者列表函数索引时。此错误表示只有纯函数(pure functions)可以被索引化。纯函数是指它们的输出仅仅取决于其输入参数,任何外部对象(如数据库表或者游标)都不能影响它们的值。
常见案例
1. 索引创建期间,把聚合函数或列表函数作为索引列
2. 把列表函数或聚合函数放入select list中
正常处理方法及步骤
1. 检查索引定义是否包含聚合函数或列表函数。
2. 如果需要则从select list中删除所有的函数表达式。
3. 确保where子句中只使用纯函数。