2015-01-05 48 views
0

我是PL SQL新手,嘗試在SQL過程中使用REGEXP_SUBSTR時遇到問題。我有一個字符串時,從文件一行,我想該行LIK的一個元素分離,從而嘗試使用時出現錯誤(PLS-00201)REGEXP_SUBSTR

"batch_number := REGEXP_SUBSTR(lv_f_line, '[^,]+', 1, 1);" 

我得到的錯誤是:

"Error(124,25): PLS-00201: identifier 'REGEXP_SUBSTR' must be declared" 

現在我undserstand這是一個常見的錯誤,但爲什麼在REGEXP_SUBSTR這不是一個標識符?我四處尋找答案,我什麼都找不到。任何人都可以請一些光?

非常感謝,K.

+8

您正在使用什麼版本的Oracle可能工作。正則表達式是在Oracle 10.2中引入的,也許你正在嘗試在REGEXP函數不存在的早期版本的數據庫上創建此過程。 – Shankar

+2

@Shankar,引入正則表達式10.1 http://docs.oracle.com/cd/B14117_01/server.101/b10759/wnsql.htm#sthref11 –

回答

0

REGEXP_SUBSTR是一個SQL函數。它可能在PL/SQL中不可用。

嘗試像

SELECT REGEXP_SUBSTR(lv_f_line, '[^,]+', 1, 1) 
into batch_number 
from dual; 

這不是太efficiecnt因爲上下文切換的,但如果你沒有執行過很多次

相關問題