文档解释
ORA-03222: average row size and row count must be greater than zero
Cause: Either a bad value passed to dbms_space.create_table_cost() or explain plan did not pass through size information.
Action: Check the row size parameter in dbms_space.create_table_cost(). For explain plan, make sure statistics have been computed for all source tables in the CREATE TABLE AS SELECT statement.
ORA-03222错误是由Oracle数据库抛出的异常,当用户尝试创建或改变表时,可能会发生这种异常,应用程序将不能继续执行操作。它指出平均行大小和行计数均需大于零。
官方解释
这是一个编译时的错误,它表明在编译器检查时发现某些值小于或等于零。提供的输入不是一个可接受的值,因此,编译器抛出此错误。
常见案例
ORA-03222通常会发生在下列情况中:
1. 当尝试创建一个新表时,用户指定的行大小小于或等于零,
2. 当改变已存在表的基本结构的时候,
3. 当创建一个包含行统计数的索引时,未设置这些对象的行统计数,
4. 当尝试计算表的平均行大小时,可能由于特定的参数值的缺失而发生这种错误。
正常处理方法及步骤
为解决这个错误,应根据传入的参数值,正确地指定行大小或行数,以使它们都大于零:
1. 确认您创建表时是否将行大小设置为大于零。
2. 检查您在改变表时是否指定了对象的行数。
3. 避免在计算表平均行大小时缺失参数值,确保你读取了所有必要的参数。
4. 在尝试再次创建或改变表时,确认携带了正确的参数值,以确保行大小和行数都大于零。