尝试使用 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)的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Firebase 身份验证时出现错误

为啥在尝试使用指针访问结构时出现此分段错误?

尝试使用可达性时出现错误

尝试使用 toastr 时出现错误“toastr 不是函数错误”

尝试使用动态透视查询时出现语法错误

尝试使用 matplotlib 绘图时出现奇怪的错误