ORA-01743: only pure functions can be indexed

文档解释

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子句中只使用纯函数。

你可能感兴趣的