在plsql里创建了一个函数,运行时出现问题
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
( begin case declare end exception exit for goto if loop mod
null pragma raise return select update while with
<an identifier> <a double-quoted delimited-identifier>
<a bind variable> << continue close current delete fetch lock
insert open rollback savepoint set sql execute commit forall
merge pipe purge
函数代码如下:
1 CREATE OR REPLACE FUNCTION SPLITSTR(S VARCHAR,SPLIT NUMBER) 2 RETURN VARCHAR 3 AS RE VARCHAR(200); 4 SPLITLEN NUMBER; 5 BEGIN 6 SPLITLEN:=1; 7 WHILE SPLITLEN<=SPLIT LOOP 8 RE:=LEFT(S,CHARINDEX(';',S)-1); 9 S:=SUBSTR(S,CHARINDEX(';',S)+1); 10 SPLITLEN:=SPLITLEN+1; 11 END LOOP; 12 RETURN RE; 13 END SPLITSTR;
从网上查出现这种问题一般是分号用错或者空格是中文字符造成的,我可以确定空格都是英文字符,大家能帮我看看哪儿出错了吗?
PL/SQL里没有LEFT()函数,我试着在Oracle SQL Developer中调试,发现根本不支持LEFT函数
谢谢,是这样的,我用其他的函数替代完成了这个功能。