编译包规范时出现oracle plsql错误

时间:2016-09-11 06:33:18

标签: oracle plsql

create or replace
PACKAGE test_pkg 
IS
PROCEDURE abc_requests (p_xys IN NUMBER);                      
end test_pkg; 

Hello我的程序名是abc_requests,只有一个参数。 以下是我的错误消息,请帮助。

Error message:

Error(4,11): PLS-00103: Encountered the symbol " " 
when expecting one of the following:     
 <an identifier> 
 <a double-quoted delimited-identifier>    
 current delete exists prior 

1 个答案:

答案 0 :(得分:4)

您在语句中使用了不间断空格,而不是普通空格。如果您复制并粘贴上面显示的页面中的代码,它将起作用。如果您编辑问题并复制原始代码,则不会。

您可以使用dump()函数(或体面的文本编辑器)查看代码实际包含的内容:

select dump('PROCEDURE abc_requests (p_xys IN NUMBER);',16) from dual;

DUMP('PROCEDURE ABC_REQUESTS(P_XYS IN NUMBER);',16)                                                                                              
--------------------------------------------------------------------------------------------------------------------------------------------------
Typ=96 Len=44: 50,52,4f,43,45,44,55,52,45,c2,a0,61,62,63,5f,72,65,71,75,65,73,74,73,20,28,70,5f,78,79,73,c2,a0,49,4e,c2,a0,4e,55,4d,42,45,52,29,3b
                                          ^^^^^                                                          ^^^^^       ^^^^^

我突出显示了两个问题字符,即多字non-break space(UTF-8)。

重新输入您的代码,或者从问题中复制和粘贴,或者只是将不间断的空格更改为普通空格。