文档解释
ORA-25311: string not supported for non-persistent queue
Cause: Specified QOS is not supported for non-persistent queues.
Action: Specify the right QOS.
ORA-25311: string not supported for non-persistent queue 错误提示收到的字符串无效或者不适用于非持久队列(Non persistent queue)。
官方解释
ORA-25311: 该错误的信息是“字符串不支持non-persistent 队列”,它指的是在任何非持久队列上操作(Enqueue / Dequeue)时,给定的字符串参数不是有效的,它必须是一个正确的XML串。
常见案例
在使用AQ Enqueue或Dequeue时,由于指定的参数是非XML字符串,导致ORA-25311错误。
一般处理方法及步骤
1. 检查是否在Non-persistent 队列上执行操作。
2. 检查使用的字符串是不是XML字符串,比如:’
Tom…’.3. 检查队列是否有效,比如:’select * from all_queues where name = ‘Q_NAME’;’.
4. 检查用户的queue相关的权限,比如:’execute any procedure’, ‘enqueue/dequeue any queue’;.
5. 尝试使用persistent队列,比如:’create queue q_name支持persistent=yes’;.