1

无论我尝试了什么,我都会收到 PLS-00103 错误消息:

Error starting at line 1 in command:
DECLARE
  MyVar NUMBER(12,0);
BEGIN
  HISTORY.sp_CHS_Insert('OMSC01', 522‚ 'OMSC01' ,522 , 4, 'S14_DCSKOLIZE', 'CHYBA', MyVar);
END;
Error report:
ORA-06550: řádka 4, sloupec 38:
PLS-00103: Encountered the symbol "," when expecting one of the following:

   ) , * & = - + < / > at v is mod remainder not rem =>
   <exponent (**)> <> or != or ~= >= <= <> and or like like2
   like4 likec between || multiset member submultiset
 Symbol ", was inserted before"‚", so continuation would be possible.
06550. 00000 -  "line %s, column %s:\n%s"
*Cause:    Usually a PL/SQL compilation error.
*Action:

我的程序的标题如下。该过程在包 HISTORY 中:

procedure sp_CHS_Insert(
  ParH01Source in OMSH01.H01Source%type,
  ParH01ExtID in OMSH01.H01ExtId%type,
  ParH01UpdSource in OMSH01.H01UpdSource%type,
  ParH01UpdExtId in OMSH01.H01UpdExtId%type,

  ParXUR01UserID in XUR01.XUR01UserID%type := null,
  ParS14Code in OMSS14.S14Code%type := null,
  ParS12Code in OMSS12.S12Code%type := null,
  ParH01ID out OMSH01.H01ID%type
);

调用 SQL 如下所示:

DECLARE
  MyVar NUMBER(12,0);
BEGIN
  HISTORY.sp_CHS_Insert('OMSC01', 555‚ 'OMSC01' ,555, 4, 'S14_DCSKOLIZE', 'CHYBA', MyVar);
END;

我检查了参数类型,它们是正确的。我正在通过 SQL Developer 运行脚本。

我是一个 PLSQL 新手(一个被迫做 PLSQL 的 .NET 开发人员),我知道这可能是非常明显的事情,但我就是看不到它。

4

1 回答 1

6

位置 38 中的“逗号”(在第一个 之后522)不是 ASCII 逗号。当我将您的代码复制到 SQL Developer 中时,它看起来略有不同,当我检查 ASCII 函数在传递此字符时返回 130,而普通逗号将返回 44。

于 2012-08-15T12:04:53.830 回答