2016-03-24 9 views
0

何らかの理由でこれが機能しません。私はそれを試してトラブルシューティングするための最も基本的な操作にしました。PLS-00103:次のいずれかを予期しているときにシンボル ""が検出されました

BEGIN 
    FOR rec IN (
     select REGISTRATION_UID from DIM_REGISTRATION_SET 
    )  
   LOOP 
     dbms_output.put_line('Testing 123'); 
      END LOOP;  
end; 
/

私のエラーは以下の通りです:

Error starting at line 1 in command: 
BEGIN 
    FOR rec IN (
     select REGISTRATION_UID from DIM_REGISTRATION_SET 
    )  
   LOOP 
     dbms_output.put_line('Testing 123'); 
      END LOOP;  
end; 
Error report: 
ORA-06550: line 4, column 6: 
PLS-00103: Encountered the symbol " " when expecting one of the following: 

    loop 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 
*Action: 
+2

よく見えます。多分あなたはそこに奇妙なキャラクターを持っています。質問からそのコードをコピーしてクライアントに貼り付けるとどうなりますか?それでもエラーですか? –

答えて

1

あなたはあなたのコードで予期しない文字を持っているようです。この質問からレンダリングされた出力をコピーして貼り付けるとうまく動作します。あなたが(編集ダイアログから)質問ソースコードをコピーすると、そのエラーが発生します。 (再びソースではなく、レンダリングからコピー)コードをダンプ

は示しています

select dump('(
      select REGISTRATION_UID from DIM_REGISTRATION_SET 
     ) ', 16) 
from dual;  

DUMP('(SELECTREGISTRATION_UIDFROMDIM_REGISTRATION_SET) ',16)     
-------------------------------------------------------------------------------- 
Typ=96 Len=73: 28,a,20,20,20,20,20,20,20,20,20,20,73,65,6c,65,63,74,20,52,45,47, 
49,53,54,52,41,54,49,4f,4e,5f,55,49,44,20,66,72,6f,6d,20,44,49,4d,5f,52,45,47,49 
,53,54,52,41,54,49,4f,4e,5f,53,45,54,a,20,20,20,20,20,20,20,20,29,c2,a0 

だから閉じ括弧の後のスペースは、それがUnicode文字c2a0、 which is a non-breaking spaceだ、実際に宇宙ではありません。

エラーメッセージがあまりにも、あなたがいることをダンプする場合ていることを示しています(?Wordを)

select dump ('Encountered the symbol " "', 16) from dual; 

DUMP('ENCOUNTEREDTHESYMBOL" "',16)            
-------------------------------------------------------------------------------- 
Typ=96 Len=27: 45,6e,63,6f,75,6e,74,65,72,65,64,20,74,68,65,20,73,79,6d,62,6f,6c 
,20,22,c2,a0,22 

を、私はあなたがどこからそのコードをコピー推測すると、それはその文字を拾い、それが翻訳されていません通常のスペースに。とにかくそれをスペースで置き換えるか、とにかくそれが冗長な空白であるとしてそれを取り除く。

実際には、他にもいくつかあります。 LOOP行の先頭に2つ(通常のスペースが2つあります)、END LOOP;の直前に2つ(通常のスペースが2つ前にあります)それらのすべてを交換する必要もあります。 (私はすべてを再入力するように誘惑されるだろうが、それはあなたの完全なコードのために実用的ではないかもしれない)。

+0

優秀、私をバナナを運転させる!!はい、私はWebサイトからコードサンプルをコピーしましたが、誰かが私にSkypeインスタントメッセージでいくつかのコードをコピーしたときに同じ問題が発生しました....!それは私がオンにしていたSQL Developerの好みだと思っていました。ありがとう – smackenzie

関連する問題