PLS-00103: واجه رمز "نهاية الملف" في كتلة التحديث البسيطة

StackOverflow https://stackoverflow.com/questions/3056410

سؤال

بيان أوراكل التالي:

 DECLARE ID NUMBER;
 BEGIN
  UPDATE myusername.terrainMap 
  SET playerID = :playerID,tileLayout = :tileLayout 
  WHERE ID = :ID
 END;

يعطيني الخطأ التالي:

ORA-06550: line 6, column 15:
PL/SQL: ORA-00933: SQL command not properly ended
ORA-06550: line 3, column 19:
PL/SQL: SQL Statement ignored
ORA-06550: line 6, column 18:
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>

أنا في حيرة. يبدو أن هذا عبارة عن بيان بسيط إلى حد ما. إذا كان ذلك يساعد على أي شيء ، كان لدي بيان مماثل أجرى ملحقًا كان يعمل ، لكن اليوم أعطاني نفس الرسالة.

هل كانت مفيدة؟

المحلول

أضف نصف كولون بعد where id=:id

نصائح أخرى

لديك عدد من المشاكل هنا:

  1. مفقود شبه كولون (كما رأى MJB)

  2. :ID يشير إلى متغير داخلي ، لذلك إعلانك المحلي (DECLARE ID NUMBER;) لا يتم استخدامه.

  3. أنت تستخدم اسمًا متغيرًا (على ما يبدو) هو نفس الاسم مثل colum في الجدول الخاص بك. إذا حاولت استخدام محليك ID المتغير ، لا يزال الاستعلام لا يستخدمه إلا إذا كنت تستخدم ملصق كتلة.

ومع ذلك ، يبدو أنك ترسل معرفًا كمتغير ربط على أي حال ، لذلك من المحتمل أن يكون عليك فقط إزالة الإعلان من الكتلة.

بالإضافة إلى السابق ، عليك منع المساحات بين التشغيل المتساوي ،: ، والقيمة مثل هذه:

SQL> BEGIN  
2    IF x > y THEN high := x; END IF;  -- correct

3    IF x > y THEN high := x; ENDIF;   -- incorrect

4  END;

5  /

END;
ERROR at line 4:
ORA-06550: line 4, column 4:
PLS-00103: Encountered the symbol ";" when expecting one of the following:
if

قم بزيارة الموقع لقراءة المزيد ....https://docs.oracle.com/cd/b28359_01/appdev.111/b28370/fundamentals.htm#lnpls002

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top