尝试使用 REGEXP_SUBSTR 时出现错误 (PLS-00201)
Posted
技术标签:
【中文标题】尝试使用 REGEXP_SUBSTR 时出现错误 (PLS-00201)【英文标题】:Getting an error (PLS-00201) when trying to use REGEXP_SUBSTR 【发布时间】:2015-01-05 15:23:32 【问题描述】:我是 PL SQL 的新手,在尝试在 SQL 过程中使用 REGEXP_SUBSTR 时遇到了问题。我有一个字符串 when 是文件中的一行,我试图隔离该行的一个元素,就像这样
"batch_number := REGEXP_SUBSTR(lv_f_line, '[^,]+', 1, 1);"
我得到的错误是:
"Error(124,25): PLS-00201: identifier 'REGEXP_SUBSTR' must be declared"
现在我明白这是一个常见错误,但为什么 REGEXP_SUBSTR 不是标识符?我环顾四周寻找答案,但我找不到任何东西。有没有人能解释一下?
非常感谢,K。
【问题讨论】:
您使用的是什么版本的 Oracle。 Oracle 10.2 中引入了正则表达式,也许您正尝试在不存在 REGEXP 函数的早期版本的数据库上创建此过程。 @Shankar,正则表达式被引入 10.1 docs.oracle.com/cd/B14117_01/server.101/b10759/… 【参考方案1】:REGEXP_SUBSTR 是一个 SQL 函数。它可能在 PL/SQL 中不可用。
试试类似的东西
SELECT REGEXP_SUBSTR(lv_f_line, '[^,]+', 1, 1)
into batch_number
from dual;
由于上下文切换,这不是太有效,但如果您不多次执行它可能会起作用
【讨论】:
以上是关于尝试使用 REGEXP_SUBSTR 时出现错误 (PLS-00201)的主要内容,如果未能解决你的问题,请参考以下文章