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 に答える