文档解释
ORA-09946: File name too long for buffer
Cause: The buffer that was to be used to hold a file name was determined to be too short for the generated name. This will happen if the translated name for either a trace file or an audit file is longer than the maximum allowed, which on many ports is 256 characters.
Action: Use a shorter file name.
ORA-09946错误是Oracle的一个运行时错误,指的是能够拷贝文件到缓冲存储器的最大限额已被超出。
官方解释
Oracle技术支持表明,这个错误发生时,系统每次尝试将文件复制到缓冲区时,缓冲区的大小超过了最大量。ORA-09946错误指出,这是不允许的,以便文件可以安全地复制或拷贝。
常见案例
ORA-09946错误的一个常见案例是在尝试从一个物理文件复制到一个另一个文件时发生。另外,这个错误也可能在尝试使用CREATE DATABASE,ALTER DATABASE,CREATE CONTROLFILE或ALTER SYSTEM字句时发生。它也可能在从RMAN恢复数据库失败时发生。
正常处理方法及步骤
1. 启动SQL * Plus并连接到数据库。
2. 执行ALTER SESSION显式设置_DISK_COPY_BUFFER_SIZE和_DISK_CONVERT_BUFFER_SIZE参数,使之大于目标文件的大小。
3. 重新尝试拷贝文件。
4. 如果错误仍然存在,建议更改文件名称,使它不会超过系统规定的大小限制。