الصفحة الرئيسية / الإخبارية / ميزات معالجة الأخطاء في خادم قاعدة بيانات أوراكل. أخطاء أوراكل: أخطاء قاعدة البيانات ، التفسير والإجراء العلاجي أو متغيرات الاستثناءات

ميزات معالجة الأخطاء في خادم قاعدة بيانات أوراكل. أخطاء أوراكل: أخطاء قاعدة البيانات ، التفسير والإجراء العلاجي أو متغيرات الاستثناءات

معالجة الاستثناءات في PL / SQL

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

في قواعد البيانات العلائقية ، ستقوم قاعدة البيانات دائمًا بتمرير متغير خاص يسمى SQLCODE إلى أي برنامج استدعاء. تتم ترجمة SQLCODE الذي تم إرجاعه من مكالمة الوصول من البرنامج إلى قاعدة البيانات بواسطة Oracle إلى متغير منطقي مسمى (انظر الجدول أدناه).

متغير استثناء PL / SQL

ACCESS_INTO_NULL

COLLECTION_IS_NULL

CURSOR_ALREADY_OPEN

DUP_VAL_ON_INDEX

ROWTYPE_MISMATCH

SUBSCRIPT_BEYOND_COUNT

SUBSCRIPT_OUTSIDE_LIMIT

SYS_INVALID_ROWID

TIMEOUT_ON_RESOURCE

على سبيل المثال ، إذا قامت قاعدة البيانات بإرجاع SQLCODE = 100 ، فسيتم تعيين متغير PL / SQL NO_DATA_FOUND على TRUE.

بدون استثناء ، يجب إحباط جميع برامج PL / SQL عندما يتم إرجاع SQLCODE غير متوقع بواسطة قاعدة بيانات Oracle.

يمكن أن يكون لهذا تأثير كارثي على قاعدة البيانات ، خاصةً عندما يقوم PL / SQL بتحميل البيانات في جداول بناءً على أماكن خاطئة. لمنع هذه المأساة ، توفر Oracle متغير WHEN OTHERS ، والذي يتم تعيينه على TRUE إذا تم إرجاع أي SQLCODE غير متوقع من قاعدة بيانات Oracle.

على سبيل المثال ، ضع في اعتبارك الكود التالي:

يعلن
رقم الخطأ ؛
Err_msg VARCHAR2 (100) ،
يبدأ
...
استثناء
...
عندما يقوم الآخرون بذلك
err_num: = SQLCODE ؛
Err_msg: = SUBSTR (SQLERRM، 1، 100) ،
INSERT INTO errors VALUES (err_num، err_msg) ؛
نهاية؛

هنا نرى أن معالجة الاستثناءات الخاصة بنا لها منطقة استثناءات تختبر عند الآخرين. إذا كان المتغير المنطقي WHEN OTHERS هو TRUE ، فإن تعليمات PL / SQL البرمجية تلتقط SQLCODE ورسالة الخطأ المرتبطة بها (SQLERRM) ، وتخزن هذه القيم في جدول أخطاء Oracle خاص.

معالجة استثناء أوراكل

غالبًا ما يحدد المطورون حالات الخطأ ويتعاملون معها باستخدام معالجة استثناءات Oracle واستخدام منطق IF-THEN.

معالجة استثناء أوراكل باستخدام منطق IF-THEN للإشارة إلى الأخطاء

يوضح المثال أعلاه معالجة استثناءات Oracle باستخدام المتغير المنطقي bAidAmountOkلتتبع حالة ما خلال معالجة سجل كل طالب.

هذا الاستخدام لمعالجة استثناءات Oracle له تأثير على الأداء. تستخدم معالجة استثناءات Oracle تعليمات متعددة لاختبار حالة الخطأ. تتطلب كل تعليمات معالجة استثناءات Oracle دورات CPU لإكمالها. يتضمن النهج الأفضل بكثير استخدام معالجة استثناءات Oracle لتجنب إهدار دورات وحدة المعالجة المركزية ، كما هو موضح أدناه:

استخدام معالجات الاستثناءات من Oracle لتحسين الأداء.

في هذا المثال الخاص بمعالجة استثناءات Oracle ، فإن ملف xAID_AMOUNT_OKيظهر الاستثناء صراحة داخل الحلقة. يسمح ذلك للتنفيذ بتخطي التعليمات التي تحدث بعد فحص معدل الطالب ، مما يقلل من استخدام وحدة المعالجة المركزية في معالجة استثناءات Oracle.

يعتبر التعامل مع استثناءات Oracle ذو كفاءة عالية في الأداء. عند ظهور استثناء أوراكل ، يتم تجاوز جميع التعليمات اللاحقة داخل الكتلة بحيث يمكن معالجة الاستثناء بواسطة معالج استثناء أوراكل. يمكن استخدام معالجة استثناءات Oracle لتعزيز الأداء بشكل ملحوظ.

بورليسون هو الفريق الأمريكي

ملحوظة: تم إنشاء وثائق أوراكل هذه كدعم ومرجع تدريب أوراكل لاستخدامها من قبل المتخصصين الاستشاريين في ضبط أداء DBA. لا تتردد في طرح الأسئلة على منتدى Oracle.

يؤكد خبرة! يجب على أي شخص يفكر في استخدام خدمات أحد خبراء دعم Oracle التحقق بشكل مستقل من بيانات اعتماده وخبراته ، وعدم الاعتماد على الإعلانات والخبرة المعلنة ذاتيًا. يقوم جميع خبراء Oracle الشرعيين بنشر ملفات.

ضلالات؟ ضبط الأداء


حقوق النشر 1996-2017

جميع الحقوق محفوظة بورليسون

® هي علامة تجارية مسجلة لشركة Oracle Corporation.

دعم الطوارئ عن بعد مقدم من المحادثة

في هذا الفصل ، سنناقش الاستثناءات في PL / SQL. الاستثناء هو شرط خطأ أثناء تنفيذ البرنامج. يدعم PL / SQL المبرمجين للقبض على مثل هذه الظروف باستخدام استثناءفي البرنامج ويتم اتخاذ الإجراء المناسب ضد حالة الخطأ. هناك نوعان من الاستثناءات -

  • الاستثناءات التي يحددها النظام
  • الاستثناءات المعرفة من قبل المستخدم

بناء الجملة لمعالجة الاستثناءات

الصيغة العامة لمعالجة الاستثناءات كما يلي. هنا يمكنك سرد أكبر عدد ممكن من الاستثناءات التي يمكنك التعامل معها. سيتم التعامل مع الاستثناء الافتراضي باستخدام عندما يقوم الآخرون بذلك

يعلن يبدأ استثناء عند استثناء 1 ثم استثناء 1 - معالجة - عبارات عندما استثناء 2 ثم استثناء 2 - معالجة - عبارات عند استثناء 3 ثم استثناء 3 - معالجة - عبارات ........ عند أخرى استثناء 3 - معالجة - عبارات END؛

مثال

دعونا نكتب رمز لتوضيح المفهوم. سنستخدم جدول العملاء الذي أنشأناه واستخدمناه في الفصول السابقة -

DECLARE c_id customers.id نوع٪: = 8 ؛ c_name customerS.Name٪ type ؛ c_addr customers.address نوع٪ ؛ BEGIN SELECT name، address INTO c_name، c_addr FROM customers WHERE id = c_id؛ DBMS_OUTPUT.PUT_LINE ("الاسم:" || c_name) ؛ DBMS_OUTPUT.PUT_LINE ("العنوان:" || c_addr) ؛ استثناء عند العثور على no_data_found ثم dbms_output. put_line ("لا يوجد مثل هذا العميل!") ؛ عندما الآخرين ثم dbms_output. put_line ("خطأ!") ؛ نهاية؛ /

لا يوجد مثل هذا الزبون! تم إكمال إجراء PL / SQL بنجاح.

يعرض البرنامج أعلاه اسم وعنوان العميل الذي تم تقديم هويته. نظرًا لعدم وجود عميل برقم التعريف 8 في قاعدة البيانات الخاصة بنا ، يقوم البرنامج برفع استثناء وقت التشغيل لاتوجد بيانات، والذي تم التقاطه في ملف حظر الاستثناء.

رفع الاستثناءات

يتم رفع الاستثناءات بواسطة خادم قاعدة البيانات تلقائيًا عندما يكون هناك أي خطأ داخلي في قاعدة البيانات ، ولكن يمكن للمبرمج رفع الاستثناءات بشكل صريح باستخدام الأمر رفع. فيما يلي بناء الجملة البسيط لإثارة استثناء -

إعلان استثناء اسم الاستثناء ؛ ابدأ إذا الشرط ثم رفع استثناء_اسم ؛ إنهاء إذا؛ EXCEPTION WHEN EXCEPTION THEN البيان ؛ نهاية؛

يمكنك استخدام الصيغة أعلاه لرفع استثناء Oracle القياسي أو أي استثناء يحدده المستخدم. في القسم التالي ، سنقدم لك مثالاً على رفع استثناء يحدده المستخدم. يمكنك رفع استثناءات Oracle القياسية بطريقة مماثلة.

استثناءات يحددها المستخدم

يسمح لك PL / SQL بتحديد الاستثناءات الخاصة بك وفقًا لاحتياجات برنامجك. يجب التصريح عن الاستثناء المعرف من قبل المستخدم ثم رفعه بشكل صريح ، إما باستخدام عبارة RAISE أو الإجراء DBMS_STANDARD.RAISE_APPLICATION_ERROR.

صيغة التصريح عن الاستثناء هي -

إعلان استثناء بلدي الاستثناء ؛

مثال

المثال التالي يوضح المفهوم. يطلب هذا البرنامج معرف العميل ، عندما يقوم المستخدم بإدخال معرف غير صالح ، الاستثناء بطاقة التعريف غير صالحةتربى.

DECLARE c_id customers.id٪ type: = & cc_id؛ c_name customerS.Name٪ type ؛ c_addr customers.address نوع٪ ؛ - استثناء يحدده المستخدم ex_invalid_id EXCEPTION ؛ ابدأ إذا كان c_id<= 0 THEN RAISE ex_invalid_id; ELSE SELECT name, address INTO c_name, c_addr FROM customers WHERE id = c_id; DBMS_OUTPUT.PUT_LINE ("Name: "|| c_name); DBMS_OUTPUT.PUT_LINE ("Address: " || c_addr); END IF; EXCEPTION WHEN ex_invalid_id THEN dbms_output.put_line("ID must be greater than zero!"); WHEN no_data_found THEN dbms_output.put_line("No such customer!"); WHEN others THEN dbms_output.put_line("Error!"); END; /

عندما يتم تنفيذ الكود أعلاه في موجه SQL ، فإنه ينتج النتيجة التالية -

أدخل قيمة لـ cc_id: -6 (دعنا ندخل قيمة -6) القديم 2: c_id customers.id٪ type: = & cc_id؛ new 2: c_id customers.id٪ type: = -6؛ ID يجب أن يكون أكبر من صفر ! اكتمل إجراء PL / SQL بنجاح.

استثناءات محددة مسبقًا

يوفر PL / SQL العديد من الاستثناءات المحددة مسبقًا ، والتي يتم تنفيذها عند انتهاك أي قاعدة قاعدة بيانات بواسطة أحد البرامج. على سبيل المثال ، يتم تشغيل الاستثناء المحدد مسبقًا NO_DATA_FOUND عندما تقوم عبارة SELECT INTO بإرجاع أية صفوف. يسرد الجدول التالي بعض الاستثناءات المهمة المحددة مسبقًا -

استثناء خطأ أوراكل SQLCODE وصف
ACCESS_INTO_NULL 06530 -6530 يتم رفعه عندما يتم تعيين قيمة لكائن فارغ تلقائيًا.
CASE_NOT_FOUND 06592 -6592 يتم رفعه عندما لا يتم تحديد أي من الاختيارات في عبارة WHEN الخاصة بعبارة CASE ، ولا توجد عبارة أخرى.
COLLECTION_IS_NULL 06531 -6531 يتم رفعه عندما يحاول أحد البرامج تطبيق طرق تجميع أخرى غير EXISTS على جدول متداخل أو متغير غير مهيأ ، أو يحاول البرنامج تعيين قيم لعناصر جدول أو متغير متداخل غير مهيأ.
DUP_VAL_ON_INDEX 00001 -1 يتم رفعه عند محاولة تخزين القيم المكررة في عمود به فهرس فريد.
INVALID_CURSOR 01001 -1001 يتم رفعه عند إجراء محاولات لإجراء عملية مؤشر غير مسموح بها ، مثل إغلاق مؤشر غير مفتوح.
رقم غير صالح 01722 -1722 يتم رفعه عند فشل تحويل سلسلة الأحرف إلى رقم لأن السلسلة لا تمثل رقمًا صالحًا.
تم رفض تسجيل الدخول 01017 -1017 يظهر عندما يحاول أحد البرامج تسجيل الدخول إلى قاعدة البيانات باستخدام اسم مستخدم أو كلمة مرور غير صالحة.
لاتوجد بيانات 01403 +100 يتم رفعه عندما لا ترجع عبارة SELECT INTO أية صفوف.
NOT_LOGGED_ON 01012 -1012 يتم رفعه عند إصدار استدعاء قاعدة البيانات دون الاتصال بقاعدة البيانات.
PROGRAM_ERROR 06501 -6501 يتم رفعه عندما يكون لدى PL / SQL مشكلة داخلية.
ROWTYPE_MISMATCH 06504 -6504 يتم رفعه عندما يجلب المؤشر قيمة في متغير له نوع بيانات غير متوافق.
SELF_IS_NULL 30625 -30625 يتم رفعه عند استدعاء أسلوب عضو ، ولكن لم تتم تهيئة مثيل نوع الكائن.
STORAGE_ERROR 06500 -6500 يتم رفعه عند نفاد ذاكرة PL / SQL أو تلف الذاكرة.
TOO_MANY_ROWS 01422 -1422 يتم رفعه عندما ترجع عبارة SELECT INTO أكثر من صف واحد.
VALUE_ERROR 06502 -6502 يتم رفعه عند حدوث خطأ حسابي أو تحويل أو اقتطاع أو خطأ في القياس.
ZERO_DIVIDE 01476 1476 يتم رفعه عند محاولة قسمة رقم على صفر.

دكتوراه. فلاديمير ليكاتشيف ، جامعة كالوغا التربوية سميت على اسم ك.إي تسيولكوفسكي

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

من الغريب أن الموقف مع تكوين رسائل الخطأ في البرامج غالبًا ما يكون مختلفًا تمامًا عن معالجة الأخطاء نفسها. عند معالجة الأخطاء ، من الممكن عادةً تطوير إستراتيجية مشتركة تسمح لك بترجمة معالجتها في وظيفة واحدة أو أكثر. يمكن تنفيذ نهج مماثل لرسائل الخطأ على أساس أنه في رسالة الخطأ يشير خادم أوراكل إلى نوع الخطأ وكائن قاعدة البيانات الذي تسبب في حدوثه. عادةً ما تكون هذه الكائنات قيودًا ، مثل المفاتيح الأساسية والفريدة والأجنبية والفهارس الفريدة والقيود "غير الفارغة" وما إلى ذلك. يمكن الحصول على معلومات مفصلة حول هذه القيود من جداول النظام وطرق عرض قاعدة البيانات والقيم التي يمكن تغييرها ويمكن تحديد التغيير الذي أدى إلى حدوث خطأ. لكن المشكلة تكمن في أن تنفيذ مثل هذه الآلية لتوليد رسائل الخطأ في التطبيقات الحقيقية يواجه عددًا من الصعوبات:

  • اعتماد رسالة الخطأ على الغرض من البرنامج. حتى بالنسبة للبرامج التي تعمل مع نفس قاعدة البيانات ، قد يكون من الضروري إنشاء رسائل مختلفة حول نفس الخطأ. على سبيل المثال ، في برنامج لتحرير بيانات المستخدم ، يجب أن تكون الرسالة: "منتج بهذا الاسم مسجل بالفعل! تحقق من اسم المنتج!". ولكن في برنامج استيراد البيانات ، يلزم وجود رسالة ذات محتوى مختلف تمامًا: "البيانات المستوردة مكررة - تحقق من التاريخ الذي يتم فيه استيراد البيانات!".
  • صعوبة إنشاء رسائل لبعض الأخطاء الناتجة عن قيود قاعدة البيانات. على سبيل المثال ، يمكن أن تستخدم قيود التحقق في الجداول استعلامات وشروطًا معقدة إلى حد ما. لذلك ، فإن تشكيل الرسائل بناءً على تحليلها يمكن أن يكون مهمة صعبة للغاية.
  • استخدام أسماء مخصصة للجداول والأعمدة في برامج العملاء تختلف عن أسمائهم في قاعدة البيانات. على سبيل المثال ، يحتوي الجدول على اسم "السلع" ، وفي تطبيق العميل ، يمكن عرض بيانات هذا الجدول في الدليل باسم "المنتجات" أو "المنتجات".

عادةً ما يؤدي الجمع بين هذه العوامل إلى حقيقة أن تكوين الرسائل حتى حول نفس النوع من الأخطاء يتم تنفيذه بشكل فردي لكل معاملة. نتيجة لذلك ، يتم توزيع رمز إنشاء رسائل الخطأ في جميع أنحاء التطبيق ، مما يعقد صيانته. نظرًا للحاجة إلى كتابة التعليمات البرمجية لكل خطأ محتمل تقريبًا ، فإن بعض الأخطاء التي يدرك المطور أنها بدون رسائل مقابلة للمستخدم. نتيجة لذلك ، يتم تكوين رسائل إعلامية كافية للمستخدم النهائي فقط لبعض الأخطاء ، وفي حالات أخرى ، يجب أن يكون المحتوى ، في أحسن الأحوال ، مع الرسائل من خادم قاعدة البيانات نفسه. المعلوماتية عن مثل هذه الرسائل للمستخدم العادي في معظم الحالات لا تكفي لتحديد سبب المشكلة والقضاء عليها.

تعتبر طريقة إنشاء رسائل خطأ إعلامية للمستخدم المدروسة في المقالة عالمية تمامًا ؛ يمكن تنفيذها في كل من تطبيقات العميل وعلى جانب خادم أوراكل. يمكن استخدامه في أنواع مختلفة من البرامج مثل:

  • البرامج التي تستخدم واجهة خاصة لإدخال بيانات قاعدة البيانات وتعديلها. في معظم الحالات ، يمكن الحصول على رسائل خطأ إعلامية من تحليل بنية قاعدة البيانات. سيؤدي هذا إلى إبلاغ المستخدم بقضيته بأقل جهد من جانب المطورين والبرامج.
  • برامج مع القدرة على بناء استعلامات SQL عشوائية من قبل المستخدم. يمكن أن يكون تشكيل الرسائل بناءً على تحليل بنية قاعدة البيانات مناسبًا بشكل خاص للبرامج التي تستهدف مجموعة واسعة من المستخدمين ، بما في ذلك أولئك الذين لديهم مستوى منخفض من المعرفة في هذا المجال. سيؤدي ذلك إلى جعل رسائل الخطأ في استعلامات SQL مفهومة بشكل أكبر للمستخدم.
  • منصات الموضوع. سيسمح استخدام الطرق الموضحة في المقالة للنظام الأساسي للموضوع نفسه بإنشاء رسائل خطأ إعلامية في قاعدة البيانات بناءً على تحليل هيكلها. سيسمح هذا بتقصير رمز لغة النظام الأساسي المستخدم للتعامل مع حالات الخطأ. والأخطاء التي تتطلب رسائل خاصة ، ولكن تبين أنها بدونها ، ستكون مفيدة بدرجة كافية لتسهيل تحديد سببها.

يمكن حل مشاكل تكوين الرسائل الموضحة أعلاه إذا تم تقسيم رسائل الخطأ بشكل تقليدي إلى مجموعتين:

  • الرسائل العالمية التي يتم تشكيلها بناءً على تحليل بنية قاعدة البيانات ؛
  • الرسائل الخاصة التي يتم تحديدها بشكل فردي لكل خطأ.

يمكن تطبيق طريقة إنشاء رسائل خطأ قاعدة البيانات الموضحة في المقالة على العديد من خوادم قواعد البيانات العلائقية. تمت مناقشة مثال على استخدامه لقواعد بيانات خادم Firebird في المقالة. إذا تم تطوير تطبيق العميل في Object Pascal (Delphi و Kylix و Free Pascal) ، فإن إمكانات مكتبة JEDI يمكن أن تكون مفيدة في تحديد أسباب الأخطاء غير المتوقعة.

1. رسائل خطأ عالمية ناجمة عن قيود قاعدة البيانات

كما ذكر أعلاه ، فإن الفكرة الرئيسية لإنشاء رسائل عالمية هي تكوين رسالة غنية بالمعلومات ومفهومة بشكل كافٍ للمستخدم النهائي بناءً على البيانات الواردة من رسالة الخطأ من Oracle وهيكل قاعدة البيانات. لنفترض أنه في الجدول "GOODS" (البرنامج النصي 1.1) يحاول المستخدم إضافة منتج باسم (العمود "TITLE") ، الموجود بالفعل في الجدول.

إنشاء TABLE DEMO.GOODS (رمز INTEGER NOT NULL ، TITLE VARCHAR2 (50 بايت) ليس فارغًا ، رقم السعر (16 ، 2) ليس فارغًا ، CONSTRAINT CK_PRICE CHECK (PRICE> 0) ، CONSTRAINT PK_GOODS PRIMARY KEY (CODE)) ؛ التعليق على TABLE DEMO.GOODS هو "السلع" ؛ COMMENT ON COLUMN DEMO.GOODS.CODE هو "رمز المنتج" ؛ التعليق على COLUMN DEMO.GOODS.TITLE هو "Title" ؛ التعليق على COLUMN DEMO.GOODS.PRICE هو "السعر" ؛ إنشاء UNIQUE INDEX DEMO.IDX_GOODS_TITLE على DEMO.GOODS (TITLE) ؛

البرنامج النصي 1.1. إنشاء جدول البضائع.

سينشئ الخادم خطأ في هذه الحالة ، لأن العمود "TITLE" ، الذي يخزن اسم المنتج ، مضمن في الفهرس الفريد "DEMO.IDX_GOODS_TITLE":

بدلاً من ذلك ، يمكن تكوين رسالة للمستخدم ، على سبيل المثال ، إحدى الرسائل:

  • يجب أن تكون قيمة حقل "الاسم" في جدول "المنتجات" فريدة!
  • تم تسجيل منتج بهذا الاسم بالفعل! تحقق من اسم المنتج!
  • لا يمكن أن تكون المنتجات التي تحمل الاسم نفسه في دليل المنتج!

على الرغم من اختلاف هذه الرسائل ، إلا أنها تشير جميعًا إلى معلومات حول الكائن الذي تم انتهاك قيود التفرد من أجله - هذا هو حقل "الاسم" في جدول "المنتجات".

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

بالطبع ، لا يمكن استبعاد عدم وجود تعليقات لجدول أو عمود يجب تضمينه في الرسالة. في هذه الحالة ، قد تعرض رسالة الخطأ اسم الجدول أو العمود مباشرة.

2. لم يتم تحديد قيمة الحقل المطلوب (التقييد ليس فارغًا)

يتم إنشاء هذا الخطأ بواسطة الخادم في عدة حالات:

  • تم انتهاك القيد "غير الفارغ" على العمود ؛
  • لم يتم تحديد أي قيمة لعمود يمثل جزءًا من فهرس فريد أو مفتاح رئيسي أو مفتاح فريد.

في جميع هذه الحالات ، يقوم الخادم بإنشاء خطأ:

للحصول على وصف الجدول والعمود من رسالة الخطأ ، يمكن استخدام الاستعلام 2.1.

حدد tc.comments كـ table_comment ، و cc.comments كـ column_comment من all_tab_columns c ، all_tab_comments tc ، all_col_comments cc c.owner و cc.table_name = c.table_name و cc.column_name = c.column_name

طلب 2.1. احصل على وصف للجدول والعمود

كمعلمات الاستعلام "مالك" ، "اسم_الجدول" ، "اسم_عمود" ، يجب عليك تحديد اسم المخطط والجدول والعمود من رسالة الخطأ ، على التوالي. يقوم الاستعلام بإرجاع التعليقات الخاصة بالجدول والعمود.

باستخدام نتائج هذا الاستعلام ، يمكن إنشاء رسالة خطأ ، على سبيل المثال المحتوى التالي:

يجب تحديد قيمة العمود "<Описание поля>"في الطاولة"<Описание таблицы>" في<добавлении новой/изменении>السجلات.

3. انكسار تفرد قيمة حقل أو مجموعة من الأعمدة

يمكن أن تكون الحاجة إلى إدخال قيمة فريدة لعمود مطلوبة بشكل أساسي في ثلاث حالات:

  • العمود جزء من المفتاح الرئيسي ؛
  • يتم تضمين العمود في المفتاح الفريد ؛
  • تم تضمين العمود في فهرس فريد.

في جميع الحالات الثلاث ، يُنشئ Oracle Database الخطأ نفسه:
ORA-00001: انتهاك قيد فريد (<Схема>.<Ограничение>)

تحدد رسالة الخطأ القيد الذي تسبب في حدوث الخطأ. للحصول على معلومات حول الأعمدة المضمنة في المفاتيح الرئيسية أو الفريدة ، يمكنك استخدام الاستعلام 3.1 للحصول على معلومات حول الفهرس - الاستعلام 3.2.

حدد dcs.constraint_type و cc.table_name و tc.comments مثل table_comment و cc.column_name و ccom.comments على هيئة عمود من all_cons_columns cc انضم إلى all_tab_comments tc على (tc.owner = cc.owner و tc.table_name = cc.table_name) انضم إلى all_col_comments ccom على (ccom.owner = cc.owner و ccom.table_name = cc.table_name و ccom.column_name = cc. العمود اسم) انضم إلى all_constraints dcs على (dcs.constraint_name = cc.constraint_name) حيث cc.owner =: owner and cc.constraint_name =: key_name
طلب 3.1. الحصول على معلومات حول أعمدة الجدول المضمنة في المفاتيح الرئيسية أو الفريدة.
حدد ic.table_name ، tc.comments كـ table_comment ، ic.column_name ، ccom.comments كـ column_comment من all_ind_columns ic الانضمام إلى all_tab_comments tc على (tc.owner = ic.table_owner و tc.table_name = ic.table_name) انضم إلى all_col_comments ccom على (ccom.owner = ic.table_owner و ccom.table_name = ic.table_name و ccom.column_name = ic. العمود اسم) حيث table_owner =: المالك و index_name =: index_name
طلب 3.2. الحصول على معلومات حول أعمدة الجدول المدرجة في الفهرس.

معلمات طلب البحث هي اسم المخطط ("المالك") أو اسم المفتاح ("key_name") أو اسم الفهرس ("index_name"). تقوم الاستعلامات بإرجاع الأسماء والتعليقات الخاصة بالجداول والأعمدة في القيد. يقوم الاستعلام 3.1 أيضًا بإرجاع نوع القيد ("نوع القيد"): "P" - المفتاح الرئيسي ، "U" - مفتاح فريد. يتطابق عدد السجلات التي تم إرجاعها بواسطة الاستعلامات مع عدد الأعمدة في القيد الفريد.

استنادًا إلى المعلومات الواردة حول قيد التفرد للمستخدم ، يمكن إنشاء أشكال مختلفة من رسائل الخطأ ، على سبيل المثال ، تلك الواردة في القسم 1.

4. الأخطاء التي تسببها قيود المفاتيح الخارجية

عند إجراء عمليات على البيانات المجدولة المرتبطة بالمفاتيح الخارجية ، هناك عدة أسباب تؤدي إلى حدوث أخطاء:

1. يتم إضافة سجل إلى الجدول الثانوي ، حيث لا يحتوي العمود المضمن في المفتاح الخارجي على قيمة مقابلة في الجدول الرئيسي. يحدث موقف مماثل عند تغيير قيمة عمود جدول ثانوي إذا لم تكن قيمة العمود الجديد في الجدول الرئيسي. تقوم Oracle Database في هذه الحالة بإنشاء خطأ:

  1. جرت محاولة لتغيير قيمة عمود في الجدول الأصلي المشار إليه في الجدول الفرعي. في هذه الحالة ، يُنشئ Oracle Database خطأً:
  1. جرت محاولة لحذف البيانات الموجودة في الجدول الرئيسي المشار إليه في الجدول التابع. إذا تم تحديد قيد "NO ACTION" في تعريف العلاقة بين الجداول لعملية حذف البيانات ، فإن Oracle لا تسمح بحذف البيانات من الجدول الرئيسي إذا كان الجدول الفرعي يحتوي على سجلات مرتبطة بالسجل الجاري حذفه. في هذه الحالة ، يُنشئ Oracle Database خطأً مشابهًا للحالة السابقة.

يمكنك استخدام الاستعلام 4.1 أدناه للحصول على معلومات حول أعمدة الجدولين الرئيسي والفرعي اللذين يشكلان جزءًا من المفتاح الخارجي.

حدد a.constraint_name ، a.table_name ، tc1.comments كـ table_comment ، a2.column_name ، cc1.comments على شكل عمود_التعليق ، b.owner كـ r_owner ، b.table_name كـ r_table_name ، tc2.comments كـ r_table_comment ، b2.column_name كـ r_column_name ، comments كـ r_column_comment من all_constraints a ، all_constraints b ، all_cons_columns a2 ، all_cons_columns b2 ، all_tab_comments tc1 ، all_col_comments cc1 ، all_tab_comments tc2 ، all_col_comments cc2 حيث a.owner =: owner and a.constraint_ty.ty. ("P" ، "U") و b.constraint_name = a.r_constraint_name و b.owner = a.r_owner و a2.constraint_name = a.constraint_name و a2.table_name = a.table_name و a2.owner = a.owner and b2.constraint_name = b.constraint_name و b2.table_name = b.table_name و b2.owner = b. المالك = a2.owner و cc1.table_name = a2.table_name و cc1.column_name = a2.column_name و tc2.owner = b.owner و tc2.table_name = b.table_name و cc2.owner = b2.owner و cc2.table_name = b2.table_name و cc2.column_name = b2.column_name
طلب 4.1. الحصول على معلومات حول مفتاح خارجي.

يحتوي الطلب على معلمتين: "المالك" و "المفتاح الأجنبي" - المخطط والمفتاح الخارجي ، والذي تريد الحصول على معلومات عنه. تقوم بإرجاع معلومات حول الأعمدة المضمنة في المفتاح الخارجي: "table_name" ، "table_comment" - اسم ووصف الجدول الثانوي ؛ "اسم_عمود" ، "تعليق_عمود" - اسم ووصف عمود الجدول الثانوي. تعرض أعمدة الاستعلام المسبوقة بـ "r_" معلومات حول الجدول الرئيسي. يتوافق عدد السجلات التي يتم إرجاعها بواسطة الاستعلام مع عدد الأعمدة المضمنة في المفتاح الخارجي.

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

5. رسائل خطأ خاصة بسبب قيود قاعدة البيانات

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

يمكن التمييز بين مجموعتين من رسائل الخطأ الخاصة. النوع الأول من الرسائل الخاصة مخصص للاستخدام في جميع التطبيقات التي تعمل مع قاعدة بيانات مشتركة. يمكن الإشارة إليها بشكل فضفاض باسم "رسائل خطأ خاصة على مستوى قاعدة البيانات". المجموعة الثانية من الرسائل خاصة بالتطبيق. قد تكون هناك حاجة إليها عندما تحتاج التطبيقات المختلفة إلى إعطاء المستخدم رسائل مختلفة حول نفس الخطأ. يمكن تسميتها مبدئيًا "رسائل خطأ خاصة على مستوى التطبيق". من الملائم تخزين المعلومات حول المجموعة الأولى من الرسائل في قاعدة البيانات نفسها واستخدام جدول منفصل لهذا الغرض. يمكن تخزين الرسائل الخاصة ببرنامج ما في موارده ، على سبيل المثال ، كملف منفصل أو أيضًا في قاعدة بيانات. يمكن تحديد الرسائل الخاصة بناءً على رمز الخطأ واسم المخطط وكلمة أساسية واحدة أو أكثر من رسالة الخطأ.

6. التحقق من رسائل خطأ القيد للجداول

عندما يحدث خطأ بسبب قيد CHECK في جدول ، يقوم الخادم بإنشاء خطأ:
ORA-02290: تم انتهاك قيد التحقق من سلامة (<Схема>.<Имя ограничения>)

كما هو مذكور أعلاه ، غالبًا ما يكون من المناسب استخدام رسائل خاصة لمثل هذه الأخطاء. على سبيل المثال ، يمكن أن يستخدم قيد "CK_PRICE" في جدول "السلع" رسالة مخصصة مخزنة في جدول الرسائل المخصص:

7. الاستخدام الشامل لرسائل الخطأ المخصصة والعامة

يتم تنفيذ آلية مرنة لتوليد رسائل خطأ إعلامية للمستخدم على عدة مراحل (الشكل 1):

1. قم بإخراج رسالة خطأ مخصصة على مستوى التطبيق. يبحث البرنامج أولاً عن رسالة خطأ بين الرسائل المحددة لهذا التطبيق. إذا تم العثور على مثل هذه الرسالة ، يتم عرضها ، ويكتمل تشكيل الرسالة.

2. إخراج رسالة خطأ خاصة على مستوى قاعدة البيانات. إذا لم يتم العثور على رسالة في الخطوة 1 ، فسيتم البحث عن رسالة خطأ خاصة على مستوى قاعدة البيانات. إذا تم العثور عليه ، يتم عرضه للمستخدم وينتهي إنشاء رسالة الخطأ عند هذا الحد.

3. عرض رسالة بناءً على تحليل بنية قاعدة البيانات (رسالة عالمية). إذا لم يتم العثور على رسائل خاصة في المراحل السابقة ، فسيتم تشكيلها بناءً على تحليل بنية قاعدة البيانات. يتم عرضها للمستخدم وهذا يكمل تشكيل الرسالة.

4. عرض رسالة من خادم قاعدة البيانات. إذا لم يتم إنشاء رسالة للمستخدم في الخطوات الثلاث السابقة ، فسيتم عرض رسالة خطأ من Oracle. قد تنشأ هذه الحالة لعدة أسباب. على سبيل المثال ، عند حدوث خطأ مخصص تم إنشاؤه عن قصد في إجراء مخزن أو تشغيله باستخدام وظيفة RAISE_APPLICATION_ERROR ، ومحتوى الرسالة الذي لا يلزم تغييره.

من الممكن حدوث حالات أكثر تعقيدًا من تلك الواردة في هذه المقالة. على سبيل المثال ، إذا تم إنشاء الرسالة في إجراء مخزن ، والذي بدوره يمكن استدعاؤه من مشغل أو إجراء مخزن آخر. في هذه الحالة ، قد تحتاج أيضًا إلى معلومات حول كيفية استدعاء الإجراء الذي أدى إلى إنشاء رسالة الخطأ. وبالتالي ، يمكن استكمال الرسالة الأصلية أو تغييرها ، على سبيل المثال ، بناءً على معلومات حول مجموعة الاستدعاءات للإجراءات والمُشغلات المخزنة.

في بعض الحالات ، يمكن أن تكون هذه الرسائل أكثر إفادة من تلك التي تم إنشاؤها في المراحل السابقة. على سبيل المثال ، بدلاً من قيد CK_PRICE لجدول DEMO.GOODS (البرنامج النصي 1.1) ، يمكنك إجراء الفحص اللازم في المشغل قبل إدراج السجل وتحديثه وإنشاء رسالة للمستخدم في نموذج "جاهز" بالفعل:

إذا كان سعر المنتج أقل من أو يساوي الصفر ، فسيقوم الخادم بإنشاء خطأ ، على سبيل المثال:

يمكن لتطبيق العميل إرسال هذه الرسالة على الفور إلى المستخدم دون تعديل.

قد يكون سبب آخر هو ظهور خطأ لم يتم توفير تكوين الرسالة له.

أرز. 1. تسلسل إنشاء رسالة خطأ في قاعدة البيانات.

أود أن أشير إلى أنه حتى إذا كان التطبيق يستخدم رسائل خطأ خاصة فقط ، فإن استخدام وظيفة مشتركة لإنشاء رسائل سيحسن بنية البرنامج. إذا لزم الأمر ، يمكن أن يدعم تنسيق الرسائل الخاصة ارتباطات إلى نظام المساعدة والصور وما إلى ذلك. تركز الطريقة الموصوفة لإنشاء رسائل خطأ قاعدة البيانات بشكل أكبر على التنفيذ في تطبيق العميل. في الوقت نفسه ، يمكن استخدامه على جانب الخادم في الإجراءات المخزنة ، ومشغلات الجدول ، وكذلك في مشغلات النظام لقاعدة البيانات أو حدث SERVERERROR.

خاتمة

الغرض من هذه المقالة هو إظهار الأفكار الرئيسية لطريقة يمكن استخدامها لإنشاء رسائل خطأ إعلامية في قاعدة بيانات أوراكل للمستخدم النهائي. على الرغم من أن بعض نقاط التنفيذ ظلت خارج نطاق المقالة ، إلا أنني أود أن آمل أن يؤدي النهج الموضح في المقالة إلى تقليل تكاليف العمالة في تطوير البرامج وتحسين موثوقيتها وجودتها.

عند حدوث استثناءات ، من المهم إصدار رسائل خطأ سهلة الاستخدام. تم ذكر الاستثناءات بالفعل في القسم الخاص بكتل PL / SQL الأساسية. حان الوقت الآن للنظر فيها بمزيد من التفصيل.

استثناءات

الاستثناء هو شرط خطأ تم تنشيطه - أو فرح - عند حدوث مشكلة. هناك العديد من الاستثناءات المختلفة ، كل منها مرتبط بنوع معين من المشاكل. عند حدوث استثناء ، يتوقف تنفيذ التعليمات البرمجية عند العبارة التي طرحت الاستثناء ، ويتم نقل التحكم إلى جزء الكتلة الذي يعالج الاستثناء. إذا كانت الكتلة لا تحتوي على قسم قابل للتنفيذ ، يحاول PL / SQL العثور على قسم قابل للتنفيذ في بما فيها وحدة قاعدة (إرفاق الكتلة الأساسية) ، أي في كتلة خارج الكود الذي طرح الاستثناء. إذا لم يكن هناك معالج لهذا الاستثناء في كتلة التضمين الفوري ، فسيستمر البحث في كتل من المستويات التالية حتى يتم العثور على معالج مناسب ، وإذا تعذر العثور عليه ، فسيتوقف تنفيذ البرنامج مع ظهور رسالة خطأ لم تتم معالجتها.

جزء معالجة الاستثناءات من الكتلة هو المكان المثالي لإصدار رسائل خطأ إعلامية وتنفيذها تنظيف (تنظيف) ، والذي يسمح لك بالتخلص من كل ما قد يتسبب في حدوث ارتباك أو مشاكل في المستقبل. إذا تم طرح استثناء أثناء تنفيذ إجراء أدى إلى إدراج صف في جدول ، فقد يتضمن إجراء التنظيف النموذجي عبارة ROLLBACK.

بمجرد نقل عنصر التحكم إلى معالج استثناء ، لم يعد يتم إرجاعه إلى العبارة التي تسببت في الاستثناء. وبدلاً من ذلك ، يتم نقل عنصر التحكم إلى جملة كتلة القاعدة المضمنة فورًا بعد الكتلة المتداخلة أو استدعاء الإجراء / الوظيفة.

استثناءات النظام

أنت على دراية بالفعل بالاستثناء ZERO_DIVIDE المحدد مسبقًا في PL / SQL. هناك عدد غير قليل من استثناءات النظام الأخرى التي يتعرف عليها PL / SQL أو Oracle. يوفر الجدول 1 قائمة أكثر اكتمالاً لاستثناءات النظام.

في PL / SQL ، يمكنك إعطاء معلومات الخطأ للمستخدمين بطريقتين. الطريقة الأولى هي استخدام الأمر SQLCODE ، والذي يقوم بإرجاع رمز خطأ. هذا الرمز هو رقم سالب ، وعادة ما يساوي رقم خطأ ORA الذي تتم طباعته عند إنهاء التطبيق إذا تم ترك الاستثناء دون معالجة. الطريقة الثانية هي إرجاع رسالة نصية تصف الخطأ. ليس من المستغرب أن يسمى الأمر المقابل SQLERRM. يمكن استخدام كل من SQLCODE و SQLERRM في معالج استثناء. ملاحظة: ليست كل استثناءات النظام لها أسماء.

جدول1 . استثناءات النظام

استثناء النظام ،خطا بالكود

سبب الإثارة

المؤشر_ سابقا_ افتح

ORA-06511

محاولة فتح مؤشر مفتوح بالفعل

DUP_VAL_ON_INDEX

ORA-00001

محاولة إدراج قيمة مكررة في عمود يحتوي على فهرس فريد وبالتالي قيد فريد

غير صالحة_ المؤشر

ORA-01001

محاولة إحضار مؤشر غير مفتوح أو محاولة إغلاق مؤشر لم يتم فتحه

لاتوجد بيانات

أورا -01403

محاولة SELECT INTO عندما يُرجع SELECT صفرًا من الصفوف (وأسباب أخرى خارج نطاق هذا الكتاب)

برنامج_ خطأ

ORA-06501

خطأ داخلي. عادةً ما يعني أنك بحاجة إلى الاتصال بدعم أوراكل

تخزين_ خطأ

ORA-06500

البرنامج لا يحتوي على ذاكرة نظام كافية

TIMEOUT_ON_RESOURCE

ORA-00051

انتظر البرنامج وقتًا طويلاً حتى يتوفر بعض الموارد

TOO_MANY_ROWS

أورا -01422

قام SELECT INTO في PL / SQL بإرجاع أكثر من صف واحد

القيمة_ خطأ

أورا -06502

واجه PL / SOL تحويلًا أو اقتطاعًا غير صالح للبيانات ، أو قيد بيانات غير صالح

صفر_ يقسم

أورا -01476

حاول القسمة على صفر

جميع الاستثناءات والأخطاء الداخلية الأخرى التي لا تغطيها الاستثناءات المحددة في الكتلة الأساسية. يُستخدم عندما لا تعرف بالضبط الاستثناء المسمى الذي يجب معالجته وتريد معالجة أي استثناءات يتم طرحها

الآن دعنا نعود إلى المثال الأول في هذا الفصل ونستخدم SQLCODE و SQLERRM فيه. يوجد أدناه رمز المصدر للمثال ونتائج إطلاقه (الشكل 1).

Num_a NUMBER: = 6 ،

Num_b NUMBER ؛

Num_b: = 0 ؛

Num_a: = Num_a / Num_b ؛

Num_b: = 7 ؛

dbms_output. put_line ("قيمة Num_b" || Num_b) ؛

استثناء

عندما لا تنقسم بعد ذلك

رقم الخطأ: = SQLCODE ؛

Err_msg VARCHAR2 (512): = SQLERRM ،

dbms_output. put_line ("رقم خطأ ORA" || err_num)؛

dbms_output. put_line ("رسالة خطأ ORA" || err_msg)؛

dbms_output.put_line ("قيمة Num_a" || Num_a) ؛

dbms_output.put_line ("قيمة Num_b" || Num_b) ؛

SQL> ضبط إخراج الخادم على

SQL> إعلان

2 عدد_أ NUMBER: = 6 ،

3 عدد_ ب NUMBER ؛

4 يبدأ

5 عدد_ ب: = 0 ؛

6 num_a: = num_a / num_b ؛

7 عدد_ ب: = 7 ؛

8 dbms_output. put_line ("قيمة num_b" || num_b) ؛

9 استثناء

10 عندما لا ينقسم

11 ثم

13 رقم الخطأ: = SQLCODE ؛

14 Err_msg VARCHAR2 (512): = SQLERRM ؛

15 بداية

16 dbms_output. put_line ("رقم خطأ ORA" || err_num) ؛

17 dbms_output. put_line ("رسالة خطأ ORA" || err_msg) ؛

18 dbms_output. put_line ("قيمة num_a" || num_a) ؛

19 dbms_output. put_line ("قيمة num_b" || num_b) ؛

20 نهاية ؛

21 نهاية ؛

رقم خطأ ORA -1476

رسالة خطأ ORA ORA-01476: القاسم يساوي صفرًا

قيمة عدد 6

قيمة num_b 0

تم إكمال إجراء PL / SQL بنجاح.

أرز. واحد.استخدام SQLCODE و SQLERRM عند معالجة استثناءات النظام

يواجه مسؤولو ومبرمجو قاعدة بيانات Oracle أحيانًا في عملهم أن قاعدة البيانات تبدأ "بالشتائم" وغالبًا بلغة غير واضحة تمامًا. في هذه المقالة ، سنلقي نظرة على لغة أخطاء Oracle ورسائل التحذير. يتم تجميع جميع الأخطاء في أقسام كبيرة وأقسام فرعية لمساعدة المستخدمين على التنقل بسرعة فيما يحدث واتخاذ الإجراءات لتصحيح الموقف. في هذه المقالة سوف ننظر في المجموعات أول ألف خطأ في أوراكل(حسب النطاقات رموز من 0 إلى 999) ، وكذلك شرح أسباب ظهورهم مع اقتراح إجراءات لتصحيحها. تنسيق الخطأ هو "ORA-xxxxx". في البداية تأتي البادئة "ORA" ، ثم من خلال الشرطة رمز خطأ مكون من خمسة أرقام.

مجموعات أخطاء أوراكل

رسائل الخطأ ORA-00000 - ORA-00099

رسائل ORA-00000 طبيعية ، إكمال ناجح ، أي ليست خطأ.

أخطاء الوصول إلى النواة المنهجية 0001-0049

  • ORA-00001: مفتاح مكرر في الفهرس
  • ORA-00017: تم تجاوز الحد الأقصى لعدد المكالمات
  • ORA-00018: تم تجاوز الحد الأقصى لعدد الجلسات
  • ORA-00019: تجاوز عدد الجلسات عدد التراخيص
  • ORA-00020: تم تجاوز الحد الأقصى لعدد العمليات
  • جلسة ORA-00021 قيد الاستخدام من قبل عملية أخرى. لا تقم بتبديل الجلسة
  • ORA-00022: معرف جلسة غير صالح. الدخول محظور
  • ORA-00023: تحتوي الجلسة على مراجع ذاكرة خاصة. لا يمكن قطع الاتصال بالجلسة
  • ORA-00024: يحظر الاتصال بأكثر من عملية في وضع المستخدم الفردي
  • ORA-00025: لا يمكن وضع [سلسلة]
  • ORA-00026: معرف جلسة مفقود أو غير صالح
  • ORA-00027: غير قادر على إتلاف الجلسة الحالية
  • ORA-00028: تم إتلاف جلستك
  • ORA-00029: الجلسة ليست جلسة مستخدم
  • ORA-00030: جلسة المستخدم ذات المعرف المحدد غير موجودة
  • ORA-00031: تم وضع علامة على الجلسة للتدمير
  • ORA-00032: كلمة مرور نقل جلسة غير صالحة
  • ORA-00033: الجلسة الحالية مع نقل كلمة مرور فارغة
  • ORA-00034: غير قادر على الالتزام أو ROLLBACK في جلسة PL / SQL الحالية
  • ORA-00035: لا يمكن أن تكون قيمة LICENSE_MAX_USERS أقل من العدد الحالي للمستخدمين
  • ORA-00036: تم الوصول إلى الحد الأقصى لعدد المستويات (القيمة) لتكرار SQL
  • ORA-00037: غير قادر على تبديل الجلسة إلى مجموعة خوادم أخرى
  • ORA-00038: تعذر إنشاء الجلسة. مجموعة الخادم مملوكة لمستخدم آخر

أخطاء ENQ 0050-0080

  • ORA-00050: خطأ في نظام التشغيل أثناء الحصول على قائمة الانتظار
  • ORA-00051: انتهت مهلة المورد
  • ORA-00052: تم تجاوز الحد الأقصى لعدد الموارد التي تم إرجاعها
  • ORA-00053: تم تجاوز الحد الأقصى لعدد قوائم الانتظار
  • ORA-00054: المورد مشغول بالوصول إلى مؤشر NOWAIT
  • ORA-00055: تم تجاوز الحد الأقصى لعدد أقفال DML
  • ORA-00056: يتم وضع قفل DDL على كائن مقفل
  • ORA-00057: تم تجاوز الحد الأقصى لعدد أقفال الجدول المؤقتة
  • ORA-00058: يجب أن تكون DB_BLOCK_SIZE مساوية لقاعدة البيانات التي يتم تحميلها
  • ORA-00059: تم تجاوز قيمة معلمة DB_FILES
  • ORA-00060: حدث مأزق أثناء انتظار أحد الموارد
  • ORA-00061: مثيل مختلف له إعدادات DML_LOCK مختلفة
  • ORA-00062: لا يمكن الحصول على قفل DML على الجدول بأكمله. إعداد DML_LOCKS فارغ
  • ORA-00063: تم تجاوز قيمة المعلمة LOG_FILES
  • ORA-00064: لا يمكن وضع الكائن ، فهو كبير جدًا بالنسبة لنظام التشغيل
  • ORA-00065: خطأ في تهيئة المعلمة FIXED_DATE
  • ORA-00066: قيم LOG_FILES غير متطابقة
  • ORA-00067: قيمة غير صالحة لمعلمة السلسلة ، يجب أن تكون سلسلة
  • ORA-00068: قيمة غير صالحة لمعلمة السلسلة ، يجب أن تكون سلسلة
  • ORA-00069: لا يمكن قفل الجدول - تم رفض القفل في [سلسلة]
  • ORA-00070: الأمر [سلسلة] غير صالح
  • ORA-00071: يجب أن يكون عدد العمليات أكبر من 1:
  • ORA-00072: العملية المحددة غير نشطة
  • ORA-00073: عدد غير صالح من الوسائط المحددة للأمر
  • ORA-00074: لم يتم تحديد أي عملية
  • ORA-00075: عملية [سلسلة] غير موجودة في المثيل الحالي
  • ORA-00076: تفريغ [سلسلة] غير موجود
  • ORA-00077: التفريغ المحدد غير صالح
  • ORA-00078: غير قادر على حل مشكلة التفريغ بالاسم
  • ORA-00079: المتغير [القيمة] غير موجود
  • ORA-00080: جرت محاولة لتفريغ مساحة غير صالحة من الذاكرة
  • ORA-00081: النطاق المحدد غير صالح
  • ORA-00082: نطاق الذاكرة ليس في النطاق المحدد
  • ORA-00083: من المحتمل أن يكون SGA تالفًا
  • ORA-00084: يجب أن تكون المنطقة العالمية PGA أو SGA أو UGA
  • ORA-00085: المكالمة الحالية غير موجودة
  • ORA-00086: استدعاء المستخدم غير موجود
  • ORA-00087: لا يمكن تنفيذ الأمر على مثيل بعيد
  • ORA-00088: لا يمكن تنفيذ الأمر بواسطة الخادم المشترك
  • ORA-00089: رقم مثيل غير صالح في الأمر ORADEBUG
  • ORA-00090: فشل الأمر ORADEBUG في تخصيص الذاكرة بشكل صحيح في قاعدة بيانات مجمعة
  • ORA-00091: يجب تحديد LARGE_POOL_SIZE
  • ORA-00092: يجب أن يكون LARGE_POOL_SIZE أكبر من LARGE_POOL_MIN_ALLOC
  • ORA-00093:٪ s محدد بشكل غير صحيح
  • ORA-00094: يجب أن يحتوي٪ s على قيمة عدد صحيح
  • ORA-00096: قيمة [قيمة] غير صالحة للمعلمة [قيمة] ، يجب أن تكون في النطاق
  • ORA-00097: ميزات Oracle SQL غير مدعومة بواسطة SQL92:
  • ORA-00099: انقضت مهلة المورد. الجمود المحتمل لـ PDML

أخطاء المنطقة والقطعة ORA-00100 - ORA-00299

  • ORA-00100: لم يتم العثور على بيانات
  • ORA-00101: مواصفات غير صالحة لمعلمات النظام DISPATCHERS
  • ORA-00102: لا يمكن للمرسلين استخدام بروتوكول الشبكة المحدد
  • ORA-00103: بروتوكول شبكة غير صالح ، محجوز للاستخدام من قبل المرسلين
  • ORA-00104: تم اكتشاف حالة توقف تام ، تم حظر جميع الخوادم المتاحة ، في انتظار المورد
  • ORA-00105: تكوينات المرسل كثيرة جدًا
  • ORA-00106: لا يمكن بدء تشغيل قاعدة البيانات أو إيقافها أثناء الاتصال بالمرسل
  • ORA-00107: غير قادر على الاتصال بعملية مستمع ORACLE
  • ORA-00108: غير قادر على تكوين المرسل لقبول الاتصالات غير المتزامنة
  • ORA-00111: سمة غير صالحة [سلسلة]
  • ORA-00112: قيمة السمة خالية
  • ORA-00113: اسم البروتوكول [سلسلة] طويل جدًا
  • ORA-00114: قيمة غير صالحة لمعلمة النظام SERVICE_NAMES
  • ORA-00115: انقطاع الاتصال ، جدول الاتصال ممتلئ
  • ORA-00116: قيمة SERVICE_NAMES غير صالحة
  • ORA-00117: يجب تحديد البروتوكول أو العنوان أو الوصف
  • ORA-00118: يمكن تحديد قيمة واحدة فقط للبروتوكول أو العنوان أو الوصف
  • ORA-00119: قيمة معلمة النظام غير صالحة
  • ORA-00120: المرسل غير مسموح به أو غير مثبت
  • ORA-00121: تم تعريف SHARED_SERVERS بدون خيار الموزعين
  • ORA-00122: غير قادر على تهيئة الشبكة
  • ORA-00123: خادم مشترك خامل
  • ORA-00124: الموزعون المحددون بدون MAX_SHARED_SERVERS
  • ORA-00125: إعادة تعيين الاتصال ؛ مفهوم خاطئ
  • ORA-00126: إعادة تعيين الاتصال ؛ تناقض
  • ORA-00127: المرسل غير موجود
  • ORA-00128: يتطلب الأمر اسم المرسل
  • ORA-00129: عنوان استماع غير صالح
  • ORA-00130: عنوان استماع غير صالح
  • ORA-00131: بروتوكول الشبكة لا يدعم التسجيل المحدد
  • ORA-00132: خطأ في بناء الجملة أو اسم شبكة غير صالح
  • ORA-00150: معرّف المعاملة مكرر
  • ORA-00151: معرّف المعاملة مكرر
  • ORA-00152: الجلسة الحالية لا تتطابق مع الجلسة المطلوبة
  • ORA-00153: خطأ في مكتبة XA
  • ORA-00154: خطأ بروتوكول في مراقبة المعاملات
  • ORA-00155: لا يمكن تنفيذ المهمة خارج المعاملة العالمية
  • ORA-00160: اسم المعاملة العالمية يتجاوز الحد الأقصى للطول
  • ORA-00161: طول المعاملة غير صالح
  • ORA-00162: معرف قاعدة البيانات الخارجية يتجاوز الحد الأقصى للقيمة
  • ORA-00163: اسم قاعدة البيانات الخارجية يتجاوز القيمة القصوى
  • ORA-00164: المعاملات المستقلة الموزعة غير مسموح بها فوق المعاملات الموزعة المحمولة
  • ORA-00165: المعاملات الموزعة المحمولة دون اتصال مع العمليات البعيدة غير مسموح بها
  • ORA-00200: تعذر إنشاء ملف التحكم
  • ORA-00201: إصدار ملف التحكم [سلسلة] غير متوافق مع إصدار ORACLE [سلسلة]
  • ORA-00202: ملف التحكم: [سلسلة]
  • ORA-00203: تم استخدام ملف تحكم غير صالح
  • ORA-00204: خطأ في قراءة كتلة البيانات (كتلة [سلسلة] ، كتل [سلسلة]) في ملف التحكم
  • ORA-00205: فشل تعريف ملف التحكم. انظر سجل لمزيد من المعلومات
  • ORA-00206: خطأ في الكتابة للتحكم في الملف (كتلة [سلسلة] ، كتل [سلسلة])
  • ORA-00207: ملف تحكم ليس من قاعدة البيانات هذه
  • ORA-00208: تجاوز عدد ملفات التحكم القيمة المسموح بها [سلسلة]
  • ORA-00209: كتلة بيانات ملف التحكم غير متطابقة. انظر سجل لمزيد من المعلومات
  • ORA-00210: تعذر فتح ملف التحكم المحدد
  • ORA-00211: ملف التحكم لا يتطابق مع السابق
  • ORA-00212: حجم الكتلة [سلسلة] أقل من الحد الأدنى المطلوب [سلسلة]
  • ORA-00213: لا يمكن إعادة استخدام ملف التحكم ، حجم الملف٪ 1:٪ 2 مطلوب:
  • ORA-00214: إصدار ملف التحكم غير متوافق مع إصدار الملف
  • ORA-00215: يجب أن يكون هناك ملف تحكم واحد على الأقل
  • ORA-00216: لا يمكن تغيير حجم ملف التحكم للتنقل من 8.0.2:
  • ORA-00217: لا يمكن تغيير حجم ملف التحكم للترحيل من 9.0.1:
  • ORA-00218: حجم كتلة البيانات لملفات التحكم لا يتطابق مع الحجم المحدد بواسطة DB_BLOCK_SIZE
  • ORA-00219: حجم ملف التحكم يتجاوز حجم المجموعة
  • ORA-00220: تعذر تضمين ملف التحكم ، راجع سجل التنبيه لمزيد من التفاصيل
  • ORA-00221: خطأ في الكتابة للتحكم في الملف
  • ORA-00222: تحاول العملية استخدام اسم ملف التحكم المثبت بالفعل
  • ORA-00223: الملف الجاري تحويله غير صالح أو به إصدار خاطئ
  • ORA-00224: فشل في تغيير حجم ملف التحكم بنوع سجل خاطئ
  • ORA-00225: الحجم المتوقع لملف التحكم [سلسلة] يختلف عن الحجم الفعلي [سلسلة]
  • ORA-00226: العملية غير ممكنة أثناء فتح ملف التحكم البديل
  • ORA-00227: تم العثور على كتلة بيانات تالفة في ملف التحكم (كتلة [سلسلة] كتل [سلسلة]).
  • ORA-00228: طول اسم ملف التحكم البديل يتجاوز القيمة المسموح بها [سلسلة]
  • تم رفض عملية ORA-00229. تم وضع ملف اللقطة في قائمة الانتظار بالفعل وجارٍ معالجته.
  • تم رفض عملية ORA-00230. قائمة انتظار لقطة ملف التحكم غير متوفرة
  • ORA-00231: لقطة ملف التحكم غير مسمى
  • ORA-00232: لقطة ملف التحكم غير موجودة أو تالفة أو غير قابلة للقراءة
  • ORA-00233: نسخة ملف التحكم تالفة أو غير قابلة للقراءة
  • ORA-00234: خطأ في تحديد اللقطة أو فتحها أو نسخ ملف التحكم
  • ORA-00235: تم حظر ملف التحكم من أجل التعديل المتوازي
  • ORA-00236: تم إلغاء اللقطة ، واختيار ملف التحكم الاحتياطي
  • ORA-00237: عملية لقطة غير مسموح بها. إنشاء ملف تحكم جديد
  • ORA-00238: تحاول العملية استخدام اسم ملف كاسم قاعدة بيانات
  • ORA-00250: أرشيفي لا يعمل
  • ORA-00251: لا يمكن أن يكون LOG_ARCHIVE_DUPLEX_DEST هو نفس الدليل مثل٪ 1:
  • ORA-00252: السجل فارغ. الأرشفة غير ممكنة
  • ORA-00253: طول السلسلة المحددة يتجاوز الحد
  • ORA-00254: خطأ في سطر تحكم الأرشيف
  • ORA-00255: حدث خطأ أثناء أرشفة ملف السجل
  • ORA-00256: حدث خطأ أثناء تحليل سلسلة أرشيف
  • ORA-00257: خطأ في أرشيفي. لا يمكنني الاتصال عندما يكون المورد مشغولاً
  • ORA-00258: يجب تحديد الأرشفة اليدوية في سجل NOARCHIVELOG
  • ORA-00259: سجل المثيل المفتوح هو السجل الحالي ولا يمكن أرشفته
  • ORA-00260: لا يمكن العثور على سجل قائمة انتظار نشط [سلسلة] لمؤشر الترابط [سلسلة]
  • ORA-00261: تم تعديل السجل أو أرشفته
  • ORA-00262: السجل الحالي [سلسلة] مشغول بخيط آخر [سلسلة] ، لا يمكن التبديل
  • ORA-00263: لا توجد سجلات لأرشفتها للتيار [سلسلة]
  • ORA-00264: لا حاجة لاستعادة
  • ORA-00265: استعادة المثيل مطلوبة ، لكن يمكن ضبط وضع ARCHIVELOG
  • ORA-00266: اسم سجل الأرشيف مطلوب
  • ORA-00267: اسم سجل الأرشيف غير مطلوب
  • ORA-00268: ملف السجل المحدد غير موجود
  • ORA-00269: ملف السجل المحدد جزء من تيار [سلسلة] وليس [سلسلة]
  • ORA-00270: خطأ في إنشاء سجل الأرشيف [سلسلة]
  • ORA-00271: لا توجد سجلات للأرشفة
  • ORA-00272: خطأ في الكتابة لأرشفة السجل [سلسلة]
  • ORA-00273: استعادة البيانات التي تم تحميلها مباشرة دون تسجيل
  • ORA-00274: تم تحديد قيمة معلمة استرداد غير صالحة [قيمة]
  • ORA-00275: بدأت إجراءات الاسترداد بالفعل
  • ORA-00276: تم تحديد تغيير الكلمة الأساسية ولكن لم يتم تحديد رقم التغيير
  • ORA-00277: خيار استعادة غير صالح حتى علامة [سلسلة]
  • ORA-00278: ملف السجل [سلسلة] لم يعد مطلوبًا للاسترداد
  • ORA-00279: اسم ملف السجل مطلوب
  • ORA-00280: اسم التدفق والتسلسل المطلوب
  • ORA-00281: لا يمكن إجراء الاستعادة باستخدام المرسل
  • ORA-00282: اتصال UPI غير مدعوم ، استخدم ALTER DATABASE RECOVER
  • ORA-00283: تم إلغاء جلسة الاستعادة بسبب الأخطاء
  • ORA-00284: جلسة الاسترداد جارية
  • ORA-00285: قيمة TIME غير صالحة
  • ORA-00286: لا توجد ملفات متاحة أو ملفات بيانات صالحة
  • ORA-00287: رقم التغيير المحدد [سلسلة] غير موجود في الدفق [سلسلة]
  • ORA-00288: استخدم "متابعة استرداد قاعدة البيانات" لمتابعة الاسترداد
  • ORA-00289: متغير [قيمة]
  • ORA-00290: خطأ في نظام التشغيل. انظر رسالة الخطأ أدناه
  • ORA-00291: تتطلب الموازية قيمة عددية
  • ORA-00292: مكون الاستعادة المتوازي غير مثبت
  • ORA-00293: ملف التحكم غير متزامن مع سجل الإعادة
  • ORA-00294: تم تحديد تنسيق غير صالح لسجل الأرشيف [سلسلة]
  • ORA-00295: رقم ملف بيانات / مؤقت غير صالح [سلسلة] ، يجب أن يكون بين 1: و [سلسلة]
  • ORA-00296: تم تجاوز قيمة قائمة استرداد ملف البيانات
  • ORA-00297: مطلوب لتحديد RECOVER DATAFILE LIST قبل RECOVER DATAFILE START
  • ORA-00298: قيمة سمة مفقودة أو غير صالحة
  • ORA-00299: استعادة مستوى ملف البيانات٪ 1

أخطاء إدارة إدخال / إخراج قاعدة البيانات ORA-00300 - ORA-00399

أخطاء في إدارة الإدخال إلى قاعدة بيانات Oracle والخروج منها:

  • ORA-00300: حجم كتلة سجل الإعادة غير صالح ، الحجم المحدد [سلسلة] يتجاوز حد الحجم [سلسلة]
  • ORA-00301: حدث خطأ أثناء إضافة ملف السجل [سلسلة] - تعذر إنشاء الملف
  • ORA-00302: تم تجاوز الحد المسموح به لعدد ملفات الإعادة
  • ORA-00303: غير قادر على تنفيذ Parallel Redo
  • ORA-00304: INSTANCE_NUMBER المطلوب مشغول
  • ORA-00305: سجل [سلسلة] من مؤشر ترابط [سلسلة] غير متناسق وينتمي إلى قاعدة بيانات أخرى
  • ORA-00306: تم الوصول إلى حد المثيل [سلسلة]
  • ORA-00307: طلب INSTANCE_NUMBER خارج النطاق ، بحد أقصى [سلسلة]
  • ORA-00308: غير قادر على فتح سجل الأرشيف [سلسلة]
  • ORA-00309: ينتمي السجل إلى قاعدة بيانات أخرى
  • ORA-00310: يحتوي السجل المؤرشف على تسلسل [سلسلة] ؛ التسلسل المطلوب [القيمة]
  • ORA-00311: غير قادر على قراءة رأس سجل الأرشيف
  • ORA-00312: السجل المتاح [سلسلة] موضوع [سلسلة]
  • ORA-00313: خطأ في فتح ملف loggroup [سلسلة] دفق [سلسلة]
  • ORA-00314: السجل [سلسلة] ، التسلسل المتوقع [سلسلة] لا يتطابق مع [سلسلة]
  • ORA-00315: سجل [سلسلة] دفق [سلسلة] ، قيمة غير صالحة [سلسلة] في الرأس
  • ORA-00316: سجل [سلسلة] ، تشير القيمة [سلسلة] في الرأس إلى أن هذا ليس ملف سجل
  • ORA-00317: الملف المحدد [سلسلة] ليس ملف سجل
  • ORA-00318: تجاوز السجل [سلسلة] الحجم المسموح به [سلسلة] لا يتطابق مع [سلسلة]
  • ORA-00319: سجل [سلسلة] حالة تدفق غير صحيحة
  • ORA-00320: غير قادر على قراءة رأس الملف [سلسلة] من الدفق [سلسلة]
  • ORA-00321: تعذر تحديث البيانات في رأس ملف السجل [سلسلة] دفق [سلسلة]
  • ORA-00322: سجل [سلسلة] من مؤشر ترابط [سلسلة] ليس هو النسخة الحالية
  • ORA-00323: سجل الدفق الحالي [سلسلة] غير قابل للاستخدام ويجب أرشفة كل الآخرين
  • ORA-00324: اسم ملف السجل [سلسلة] مترجم [سلسلة] طويل جدًا ، تجاوز الحد [سلسلة]
  • ORA-00325: يحتوي سجل أرشيف البث [سلسلة] على قيمة رأس غير صالحة [سلسلة]
  • ORA-00326: يبدأ السجل بـ [سلسلة] ، يلزم تغيير [سلسلة] مسبقًا
  • ORA-00327: سجل [سلسلة] من الدفق [سلسلة] له حجم مادي [سلسلة] أقل من المطلوب [سلسلة]
  • ORA-00328: ينتهي السجل المؤرشف بـ [سلسلة] ، التغيير مطلوب لاحقًا [سلسلة]
  • ORA-00329: يبدأ السجل المؤرشف بـ [سلسلة] ، ويحتاج إلى تغيير [سلسلة]
  • ORA-00330: ينتهي سجل الأرشيف بـ [سلسلة] ، التغيير مطلوب [سلسلة]
  • ORA-00331: إصدار السجل [سلسلة] غير متوافق مع إصدار ORACLE [سلسلة]
  • ORA-00332: سجل الأرشيف صغير جدًا ، وربما لم يتم أرشفته بالكامل
  • ORA-00333: إعادة قراءة سجل [سلسلة] الكتل السيئة من [سلسلة] متوفرة
  • ORA-00334: أرشيف السجل [سلسلة نصية]
  • ORA-00335: السجل متاح [سلسلة]: لا يوجد سجل بهذا الرقم ، السجل غير موجود
  • ORA-00336: حجم كتلة ملف السجل أقل من الحد الأدنى لحجم الكتلة [سلسلة]
  • ORA-00337: ملف السجل [سلسلة] غير موجود ولم يتم تحديد الحجم
  • ORA-00338: سجل [سلسلة] أكبر من آخر قيمة لملف التحكم
  • ORA-00339: لا يحتوي السجل المؤرشف على أية محاولات لإعادة المحاولة
  • ORA-00340: حدث خطأ في الإدخال / الإخراج أثناء معالجة السجل [سلسلة] من مؤشر الترابط [سلسلة]
  • ORA-00341: ملف السجل [سلسلة] به رقم رأس غير صالح [سلسلة]
  • ORA-00342: لا يحتوي سجل الأرشيف على معلومات SCN [سلسلة]
  • ORA-00343: أخطاء كثيرة جدًا ، تم إغلاق السجل
  • ORA-00344: غير قادر على إعادة إنشاء السجل المتاح [سلسلة]
  • ORA-00345: خطأ في الكتابة لسجل الإعادة ، حظر [سلسلة] إجمالي [سلسلة]
  • ORA-00346: تم وضع علامة على المجلة على أنها قديمة (STALE)
  • ORA-00347: سجل [سلسلة] من مؤشر ترابط [سلسلة] به حجم كتلة [سلسلة] ، غير مطابق ، يجب أن يكون [سلسلة]
  • ORA-00348: فشل معالجة إعادة الاسترداد ، يجب إيقاف المثيل
  • ORA-00349: فشل استرداد حجم الكتلة لـ [سلسلة]
  • ORA-00350: يجب أرشفة السجل [سلسلة] (دفق [سلسلة]) مثيل [سلسلة]
  • ORA-00351: وقت استرداد غير صالح
  • ORA-00352: يجب أرشفة جميع السجلات من الدفق [سلسلة] - لا يمكن السماح بها
  • ORA-00353: كتلة السجل الفاسدة [سلسلة] تغيير [سلسلة] الوقت [سلسلة]
  • ORA-00354: تلف رأس كتلة سجل الإعادة
  • ORA-00355: تغيير الرقم خارج التسلسل
  • ORA-00356: طول وصف تغيير غير صالح
  • ORA-00357: تم تحديد عدد كبير جدًا من الأعضاء لملف السجل ، بحد أقصى [سلسلة]
  • ORA-00358: تم تحديد عدد كبير جدًا من الأعضاء ، بحد أقصى [سلسلة]
  • ORA-00359: مجموعة ملفات السجل [سلسلة] غير موجودة
  • ORA-00360: ليس عضوًا في ملف السجل: [سلسلة]
  • ORA-00361: لا يمكن إزالة السجل الأخير [سلسلة] من المجموعة [سلسلة]
  • ORA-00362: العضو المطلوب هو ملف سجل صالح في المجموعة [سلسلة]
  • ORA-00363: السجل غير مؤرشف
  • ORA-00364: لا يمكن الكتابة إلى رأس السجل الجديد
  • ORA-00365: السجل المحدد غير صالح
  • ORA-00366: سجل [سلسلة] دفق [سلسلة] ، خطأ في المجموع الاختباري في رأس الملف
  • ORA-00367: خطأ في المجموع الاختباري في رأس الملف
  • ORA-00368: خطأ في المجموع الاختباري في كتلة سجل الإعادة
  • ORA-00369: السجل الحالي لسلسلة المحادثات [سلسلة] تالف وتم مسح سجل آخر
  • ORA-00371: لا توجد ذاكرة كافية في التجمع المشترك ، يجب أن تكون على الأقل [سلسلة]
  • ORA-00372: ملف [سلسلة] لا يمكن تعديله في الوقت الحالي
  • ORA-00373: إصدار السجل المفتوح [سلسلة] غير متوافق مع إصدار ORACLE [سلسلة]
  • ORA-00374: قيمة المعلمة db_block_size = [القيمة] غير صالحة ؛ يجب أن يكون مركبًا في النطاق [value..value]
  • ORA-00375: غير قادر على الحصول على القيمة الافتراضية db_block_size
  • ORA-00376: لا يمكن قراءة الملف [سلسلة] في الوقت الحالي
  • ORA-00377: النسخ الاحتياطي المتكرر للملف [سلسلة] يتسبب في توقف عمليات الكتابة
  • ORA-00378: تعذر إنشاء ذاكرة التخزين المؤقت على النحو المحدد
  • ORA-00379: لا توجد مخازن مؤقتة مجانية في ذاكرة التخزين المؤقت المؤقت [سلسلة] للكتلة [سلسلة] K.
  • ORA-00380: لا يمكن تحديد db_ [القيمة] k_cache_size [القيمة] K هو حجم الكتلة القياسي.
  • ORA-00381: لا يمكن استخدام الخيارات القديمة والجديدة لتحديد حجم ذاكرة التخزين المؤقت
  • ORA-00382:٪ s حجم كتلة غير صالح ، قيمة صالحة [str..value]
  • ORA-00383: لا يمكن تقليل القيمة الافتراضية لذاكرة التخزين المؤقت إلى الصفر
  • ORA-00384: لا توجد ذاكرة كافية لزيادة ذاكرة التخزين المؤقت
  • ORA-00390: تم مسح سجل [سلسلة] من مؤشر ترابط [سلسلة] ولا يمكن أن يكون السجل الحالي
  • ORA-00391: يجب أن تتحول جميع سلاسل الرسائل من الآن فصاعدًا إلى تنسيق السجل الجديد
  • ORA-00392: تم مسح سجل [سلسلة] من مؤشر ترابط [سلسلة] ، العملية غير مسموح بها
  • ORA-00393: سجل [سلسلة] من مؤشر ترابط [سلسلة] مطلوب لاستعادة قاعدة بيانات دون اتصال.
  • ORA-00394: يُعاد استخدام السجل المتاح أثناء الأرشفة
  • ORA-00395: يجب إعادة تسمية سجل استنساخ قاعدة البيانات
  • ORA-00396: خطأ [سلسلة] يتطلب التراجع إلى استعادة مرور واحد
  • ORA-00397: تم إحباط استعادة المثيل بسبب الخطأ
  • ORA-00398: تم إحباط الاستعادة قبل إعادة التكوين الصحيحة
  • ORA-00399: وصف تالف لتغييرات سجل الإعادة

أخطاء تهيئة قاعدة البيانات ORA-00400 - ORA-00499

  • ORA-00400: قيمة غير صالحة [سلسلة] للمعلمة [سلسلة]
  • ORA-00401: لا يدعم هذا الإصدار قيمة المعلمة [القيمة]
  • ORA-00402: لا يمكن استخدام تغييرات إصدار قاعدة البيانات [سلسلة] بواسطة الإصدار [سلسلة]
  • ORA-00403: [سلسلة] ليست هي نفسها مثيلات أخرى من [سلسلة]
  • ORA-00404: لم يتم العثور على الملف المحول: [سلسلة]
  • ORA-00405: نوع التوافق [سلسلة]
  • ORA-00406: يتطلب الخيار المتوافق [سلسلة] أو أعلى
  • ORA-00407: ترقية العودة إلى الحالة السابقة من الإصدار [سلسلة]. [سلسلة] إلى إصدار [سلسلة]. [سلسلة] غير مسموح بها
  • ORA-00408: قيمة المعلمة [سلسلة] مضبوطة على TRUE
  • ORA-00436: Oracle غير مرخصة. اتصل بشركة Oracle Corporation للحصول على المساعدة
  • ORA-00437: ميزات Oracle المتقدمة غير مرخصة. اتصل بشركة Oracle Corporation للحصول على المساعدة
  • ORA-00438: لم يتم تعيين الخيار [سلسلة]
  • ORA-00439: ميزة اختيارية غير مسموح بها: [سلسلة]
  • ORA-00443: عملية الخلفية [سلسلة] لا تعمل
  • ORA-00444: فشلت عملية الخلفية [سلسلة] عند بدء التشغيل
  • ORA-00445: لم تبدأ عملية الخلفية [سلسلة] بعد انقضاء [سلسلة] ثانية
  • ORA-00446: بدأت عملية الخلفية عندما لم يكن متوقعًا
  • ORA-00447: خطأ فادح في عملية الخلفية
  • ORA-00448: الإنهاء العادي لعملية الخلفية
  • ORA-00449: تم إنهاء عملية الخلفية [سلسلة] فجأة بسبب الخطأ [سلسلة]
  • ORA-00470: تم إنهاء عملية LGWR مع حدوث خطأ
  • ORA-00471: تم إنهاء عملية DBWR مع وجود خطأ
  • ORA-00472: تم إنهاء عملية pmon مع وجود خطأ
  • ORA-00473: تم إنهاء عملية ARCH بخطأ
  • ORA-00474: تم إنهاء عملية smon مع وجود خطأ
  • ORA-00475: تم إنهاء عملية TRWR مع حدوث خطأ
  • ORA-00476: تم إنهاء عملية RECO مع ظهور خطأ
  • ORA-00477: تم إنهاء عملية SNP * مع ظهور خطأ
  • ORA-00478: تم إنهاء عملية smon مع ظهور خطأ [سلسلة]
  • ORA-00480: تم إنهاء عملية LCK * بسبب الخطأ
  • ORA-00481: تم إنهاء عملية LMON مع حدوث خطأ
  • ORA-00482: تم إنهاء عملية LMD * مع وجود خطأ
  • ORA-00483: تم إنهاء العملية بشكل غير طبيعي أثناء إيقاف التشغيل
  • ORA-00484: تم إنهاء عملية LMS * مع ظهور خطأ
  • ORA-00485: تم إنهاء عملية DIAG بسبب الخطأ [سلسلة]

رسائل الخطأ ORA-00500 - ORA-00599

  • ORA-00568: تم تجاوز الحد الأقصى لعدد مقاطعات المعالج

أخطاء التعافي من الكوارث ORA-00600 - ORA-00699

  • ORA-00600: رمز خطأ داخلي ، وسيطات [قيمة] ، [قيمة] ، [قيمة] ، [قيمة] ، [قيمة] ، [قيمة] ، [قيمة] ، [قيمة]
  • ORA-00601: تعارض قفل الشبكة
  • ORA-00602: استثناء برنامج داخلي
  • ORA-00603: تم إنهاء جلسة خادم أوراكل بسبب خطأ فادح
  • ORA-00604: حدث خطأ على مستوى SQL العودية [سلسلة]
  • ORA-00606: رمز خطأ داخلي
  • ORA-00607: خطأ داخلي أثناء تغيير كتلة البيانات

أخطاء القاموس ORA-00700 - ORA-00799

  • ORA-00701: لا يمكن تعديل الكائن المطلوب لبدء قاعدة البيانات
  • ORA-00702: إصدار مُحمل [سلسلة] غير متوافق مع الإصدار [سلسلة]
  • ORA-00703: تم تجاوز الحد الأقصى لعدد أقفال ذاكرة التخزين المؤقت لصف المثيل
  • ORA-00704: انتهت عملية التمهيد بشكل غير طبيعي
  • ORA-00705: حالة غير صالحة أثناء بدء التشغيل ؛ أوقف المثيل وأعد التشغيل
  • ORA-00706: خطأ في تغيير تنسيق الملف [سلسلة]

أخطاء ORACLE العامة ORA-00800 - ORA-00899

  • ORA-0800: عملية الكتابة في المخزن المؤقت غير نشطة(عملية الكتابة إلى المخزن المؤقت غير نشطة).
    سبب: المشكلة تتعلق بمحاولة بدء ORACLE ، مما تسبب في إزالة عملية الكتابة إلى المخزن المؤقت. عادةً ما يتم إصدار هذه الرسالة مع رسالة خطأ في النظام توضح سبب الفشل.
    عمل: استخدم رسالة خطأ النظام (إن وجدت) لمعرفة سبب الخطأ. إذا لم يكن هناك خطأ في النظام ، فارجع إلى دليل تثبيت أوراكل للحصول على قائمة بالمتطلبات. تأكد من صحة جميع أسماء ORACLE المنطقية ، وأن هناك مساحة قرص خالية كافية في دليل ORACLE ، وأن هناك أقسام وصفحات عامة كافية. تأكد أيضًا من أن ميزانية ORACLE لها الأولوية المطلوبة. إذا لم يتم تحديد مصدر المشكلة ، فراجع برنامج التثبيت المناسب.
  • ORA-0801: بعد عملية كتابة الصورة غير نشطة
    سبب: هذه الخاصية غير مدعومة.
    عمل: يرجى الرجوع إلى برنامج التثبيت المقابل.
  • ORA-0802: منطقة سياق غير صالحة
    سبب
    عمل
  • ORA-0805: opiodr: رقم مستوى تكرار غير متناسق
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0806: قبل أن تكون معالجة الصورة غير نشطة
    سبب
    عمل
  • ORA-0807: عملية التنظيف غير نشطة
    سبب: المشكلة تتعلق بمحاولة بدء تشغيل ORACLE ، مما أدى إلى إلغاء عملية المعاينة ، وعادة ما يتم إصدار هذه الرسالة مع رسالة خطأ في النظام توضح سبب الفشل.
    عمل: استخدم رسالة خطأ النظام (إن وجدت) لمعرفة سبب الخطأ. إذا لم يكن هناك خطأ في النظام ، فارجع إلى دليل تثبيت ORACLE لنظام التشغيل لديك للتحقق من التثبيت الصحيح. إذا لم يتم تحديد مصدر المشكلة ، فراجع برنامج التثبيت المناسب.
  • ORA-0809: opispf: رمز دالة خاص غير صالح.
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0810: opiomc: لم تتم إعادة تعيين منطقة السياق في العناوين الأصلية
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0811: عملية readahead غير نشطة
    سبب: تتعلق المشكلة بمحاولة بدء تشغيل ORACLE ، مما أدى إلى إلغاء عملية القراءة المسبقة. عادةً ما يتم إصدار هذه الرسالة مع رسالة خطأ في النظام توضح سبب الفشل.
    عمل: استخدم رسالة خطأ النظام (إن وجدت) لمعرفة سبب الخطأ. إذا لم يكن هناك خطأ في النظام ، فارجع إلى دليل تثبيت ORACLE لنظام التشغيل لديك للتحقق من التثبيت الصحيح. إذا لم يتم تحديد مصدر المشكلة ، فراجع برنامج التثبيت المناسب.
  • ORA-0813: فشل التأكيد (تمت إزالة الملحق).
    سبب: هذه رسالة خطأ داخلية متعلقة بـ ORACLE SORT. لا يمكن أن يحدث هذا أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0814: ltbdrv: وضع قفل غير قانوني
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00816: فشلت ترجمة رسالة الخطأ
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0817: prsgkw: لم يتم العثور على رمز الخطأ الداخلي
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-0818: opispf: osf كبير جدًا
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.

أخطاء في بناء الجملة ORA-00900 - ORA-00999

  • ORA-00900: عبارة SQL غير صالحة.
    سبب: لم يتم التعرف على العبارة التي أدخلتها كأمر SQL صالح.
    عمل: تحقق من الأخطاء الإملائية ، تأكد من أن الكلمات الأساسية لأوامر SQL تبدأ بإحدى الكلمات التالية: ALTER، AUDIT، CREATE، DELETE، DROP، GRANT، INSERT، NOAUDIT، RENAME، REVOKE، SELECT، UPDATE، LOCK، VALIDATE. أوامر أخرى سوف تسبب هذا الخطأ.
  • ORA-00901: بناء جملة أمر CREATE غير صالح / أمر إنشاء غير صالح.
    سبب: تم استخدام خيار CREATE غير صالح في الأمر CREATE.
    عمل: تحقق من وجود أخطاء إملائية ، وتأكد من أن الأمر CREATE يتبعه أحد الخيارات التالية: INDEX أو PARTITION أو SPACE DEFINITION أو SYNONYM أو TABLE أو VIEW.
  • ORA-00902: نوع بيانات غير صالح.
    سبب: نوع البيانات المدخلة في عبارة CREATE أو ALTER TABLE غير صالح.
    عمل: تحقق من الأخطاء الإملائية ، وتأكد من أن كل اسم عمود يتبعه أحد أنواع البيانات التالية: DATA أو CHAR أو NUMBER أو RAW أو LONG أو LONG RAW.
  • ORA-00903: اسم جدول غير صالح.
    سبب: أسماء الجدول أو المجموعة التي تم إدخالها غير موجودة أو غير صالحة. تظهر هذه الرسالة أيضًا إذا تم تحديد اسم مجموعة غير صالح أو غير موجود في الأمر ALTER / DROP CLUSTER.
    عمل: تحقق من الأخطاء المطبعية. يجب أن يبدأ اسم المجموعة الصالح بحرف وأن يحتوي فقط على أحرف وأرقام وأحرف خاصة: $ و # و _. يجب ألا يزيد الاسم عن 30 حرفًا ويجب ألا يكون كلمة محجوزة.
  • ORA-00904: اسم عمود غير صالح.
    سبب: اسم العمود الذي تم إدخاله مفقود أو غير صالح.
    عمل: أدخل اسم عمود صالحًا. يجب أن يبدأ الاسم الصالح بحرف وأن يحتوي فقط على أحرف وأرقام وأحرف خاصة: $ و # و _. يجب ألا يزيد الاسم عن 30 حرفًا ويجب ألا يكون كلمة محجوزة. إذا كان يحتوي على أحرف أخرى ، فيجب أن يكون بين علامتي اقتباس.
  • ORA-00905: كلمة رئيسية مفقودة.
    سبب: تم حذف الكلمة الأساسية المطلوبة.
    عمل: تحقق من بناء جملة الأمر وأضف الكلمات الأساسية المفقودة.
  • ORA-00906: الأقواس اليسرى مفقودة.
    سبب: تم حذف الأقواس اليسرى المطلوبة. تتطلب الأوامر الأساسية (مثل CREATE TABLE و CREATE CLUSTER و INSERT) قائمة بالعناصر المحاطة بأقواس. الأقواس مطلوبة أيضًا حول التسلسلات في جملة WHERE وفي عمود UPDATE SET = (SELECT ...).
    عمل: تحقق من صيغة الأمر وأدخل الأقواس المفقودة.
  • ORA-00907: قوس أيمن مفقود
    سبب: تم إدخال القوس الأيسر بدون قوس الإغلاق الأيمن ، أو تم وضع المعلومات السابقة بين قوسين. يجب إقران جميع الأقواس.
    عمل: أدخل قوس إغلاق أيمن.
  • ORA-00908: كلمة رئيسية مفقودة NULL
    سبب: في عبارات CREATE أو ALTER TABLE ، تم تقديم NOT للإشارة إلى عدم السماح بأي قيم فارغة في هذا العمود ، ولكن تم حذف الكلمة الأساسية NULL.
    عمل: إذا طلبت قيمة في هذا العمود ، فاستبدل الكلمة NOT الأساسية بـ NOT NULL.
  • ORA-00909: عدد غير صالح من الوسائط
    سبب: تم عمل مرجع إلى دالة ORACLE مضمنة باستخدام عدد غير صحيح من الوسيطات. تتطلب جميع دالات ORACLE باستثناء SYSDATE وسيطة واحدة على الأقل.
    عمل: تحقق من صيغة الأمر وأدخل العدد المطلوب من الوسائط.
  • ORA-00910: الطول المحدد كبير جدًا بالنسبة إلى عمود CHAR
    سبب: حجم حقل الحرف غير محدد أو محدد بشكل غير صحيح. يجب تحديد الحد الأقصى للطول لكل عمود من الأحرف. يمكن أن يأخذ هذا الطول قيمًا من 0: إلى 240:.
    عمل: أدخل الحد الأقصى للطول من 0 إلى 240:.
  • ORA-00911: حرف غير صالح
    سبب: الحرف الخاص غير صالح أو صالح فقط في أماكن معينة. إذا تم استخدام حرف خاص (بخلاف $ و # و _) في اسم ولم يكن الاسم محاطًا بعلامات اقتباس مزدوجة (") ، فستظهر هذه الرسالة.
    عمل: قم بإزالة الحرف غير الصحيح من الأمر.
  • ORA-00912: عملية انبثاق المعامل مع عدم وجود معاملات في المكدس
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00913: قيم كثيرة جدًا
    سبب: يفترض الأمر مجموعتين متطابقتين من القيم ، لكن المجموعة الثانية تحتوي على عناصر أكثر من الأولى. على سبيل المثال: قد يحتوي استعلام فرعي في جملة WHERE أو HAVING على عدد كبير جدًا من الأعمدة ، أو قد يكون هناك عدد أكبر من الأعمدة في عبارة VALUES أو SELECT أكثر من عبارة INSERT.
    عمل: تحقق من عدد العناصر وقم بتغييرها.
  • ORA-00914: إضافة كلمة أساسية مفقودة
    سبب: تم إدخال الأمر ALTER PARTITION بدون الكلمة الأساسية ADD.
    عمل: تحقق من صيغة الأمر وأعد المحاولة.
  • ORA-00915: الوصول إلى الشبكة لجدول القاموس غير مسموح به حاليًا
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00917: فاصلة مفقودة مفقودة
    سبب: الفاصلة مفقودة في قائمة الأعمدة ، أو في قائمة القيم في جملة INSERT ، أو في قائمة النموذج ((c، d)، (e< f),...).
    عمل: تحقق من بناء الجملة في جملة SQL وأضف فاصلة مفقودة إذا لزم الأمر.
  • ORA-00918: تم تعريف العمود بشكل غامض
    سبب: يوجد العمود المستخدم للصلة في أكثر من جدول. عند الانضمام ، يجب أن يحتوي أي عمود موجود في أكثر من جدول على اسم الجدول. يجب أن يكون اسم العمود TABLE.COLUM أو TABLE_ALIAS.COLUMN أو EMP.DEPTNO أو E.DEPTNO ، وليس EMP فقط.
    عمل: أدخل اسم الجدول في اسم العمود قبل النقطة أو اسم الجدول البديل كما هو موضح أعلاه.
  • ORA-00919: وظيفة غير صالحة
    سبب: لم يتم التعرف على الإدخال الشبيه بالوظيفة لدالة النوع (الوسيطة) كدالة أوراكل.
    عمل: راجع الدليل للحصول على قائمة بأسماء الوظائف الصالحة.
  • ORA-00920: معامل ارتباط غير صالح
    سبب: مهمة البحث مع بيان الشرط غير صالح أو مفقود.
    عمل: أدخل عبارة شرطية صالحة. يُسمح بالعبارات العلائقية التالية: = ،! = ،<>, >, >=, <, <=,IN, IS, NULL, LIKE, и BETWEEN.
  • ORA-00921: نهاية غير متوقعة لأمر SQL
    سبب: أمر SQL غير مكتمل. تم إدخال جزء من أمر صالح ، ولكن تم حذف مكون رئيسي واحد على الأقل.
    عمل: تحقق من صيغة الأمر وأدخل المكونات المفقودة.
  • ORA-00922: خيار غير صالح
    سبب: تم التصريح عن خيار غير صالح في تعريف العمود أو تعريف المنطقة.
    عمل: قم بإزالة الخيار غير الصالح من العمود أو تعريف المنطقة. الخيار الصالح الذي يصف العمود هو NOT NULL للإشارة إلى أن العمود لا يمكن أن يحتوي على قيم NULL. يتم تصنيف أي شيء آخر يتبع نوع البيانات ، باستثناء الفاصلة أو قوس الإغلاق ، كخيار غير صالح. عند وصف طول بيانات أو نوع بيانات طويل ، ستتلقى رسالة الخطأ هذه. يُسمح فقط بالخيارات التالية في إعلان تعريف النطاق: الأولي والتكبير والحد الأقصى (بالنسبة للبيانات والفهارس) و PCTFREE (للبيانات فقط).
  • ORA-00923: مفقود من الكلمة الرئيسية
    سبب: في عبارة SELECT أو REVOKE ، يتم حذف الكلمة الأساسية FROM أو وضعها في غير محلها أو بها أخطاء إملائية. يجب أن تتبع الكلمة الأساسية FROM العنصر المحدد في عبارة SELECT ، أو اسم الجدول المحدد في عبارة REVOKE.
    عمل: استبدل الكلمة FFROM. القائمة المختارة قد تكون خاطئة في حد ذاتها. تأكد من استخدام علامات الاقتباس الفردية لإحاطة الاسم المستعار ، وما إذا كان الاسم المستعار كلمة محجوزة أم لا.
  • ORA-00924: الكلمات الرئيسية مفقودة BY
    سبب: مفقود حسب الكلمة الأساسية في تعبيرات GROUP BY أو ORDER BY أو CONNECTED BY. بالإضافة إلى ذلك ، في أمر GRANT ، يجب أن يتبع الكلمة INDENTIFIED بواسطة.
    عمل: أدخل الكلمة BY بشكل صحيح.
  • ORA-00925: كلمة INTO مفقودة
    سبب: تم استخدام أمر INSERT بدون كلمة INTO الأساسية.
    عمل: استبدل INSERT بـ INSERT INTO.
  • ORA-00926: الكلمة الأساسية VALUES مفقودة
    سبب: عبارة INSERT بدون القيم أو SELECT الكلمة الأساسية. يجب أن يُتبع عبارة INSERT INTO بقيم أو تسلسل SELECT.
    عمل: اكتب تعبير VALUES أو تسلسل بعد عبارة INSERT INTO.
  • ORA-00927: مفقود علامة يساوي
    سبب: علامة المساواة مفقودة في أحد الأماكن التالية: * في بيان SET للأمر UPDATE * بعد! للإشارة إلى عدم المساواة * في تعبير PCTFREE للأمر CREATE INDEX
    عمل: أدخل علامة المساواة.
  • ORA-00928: كلمة SELECT مفقودة
    سبب: يجب تضمين تسلسل SELECT في الأمر CREATE VIEW.
    عمل: أدخل عبارة SELECT المطلوبة في الأمر CREATE VIEW.
  • ORA-00929: فترة مفقودة
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00930: علامة النجمة مفقودة
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00931: معرف مفقود
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00932: أنواع بيانات غير متناسقة نوع بيانات غير متناسق
    سبب: محاولة إضافة حقل حرف إلى حقل بيانات. يمكن إضافة البيانات إلى الحقول الرقمية فقط.
    عمل: قم بتحويل حقل حرف إلى حقل رقمي باستخدام الدالة TO_NUMBER قبل إضافة حقل البيانات.
  • ORA-00933: أمر SQL ولم يتم إنهاؤه بشكل صحيح
    سبب: تم إنهاء أمر SQL بتعبير غير صالح. على سبيل المثال: يمكن تضمين عبارة ORDER BY في عبارة CREATE VIEW أو INSERT. ومع ذلك ، يجب عدم استخدام ORDER BY لإنشاء عرض آخر أو تضمينه في الترتيب الرئيسي.
    عمل: تحقق من صيغة الأمر وقم بإزالة المكونات غير الضرورية. يجب أن تكون قادرًا على تكرار التعبيرات المحذوفة بأوامر أخرى. على سبيل المثال ، إذا كنت تريد ترتيب سطور المراجعة ، فتابع بنفس الطريقة المتبعة عند طلب مراجعة ، ولكن ليس كما هو الحال عند إنشاء مراجعة. يمكن أن يحدث هذا الخطأ أيضًا عند استخدام نماذج SQL إذا تم وضع مسافة بادئة لمتابعة السطر. تحقق من تعويض وإزالة المسافات. يجب عليك استخدام نهايات SQL المناسبة إذا كنت تستخدم تعبير I مع وسيطة واحدة ، على سبيل المثال: IN (X). يجب أن يأخذ التعبير IN وسيطتين على الأقل.
  • ORA-00934: وظيفة التعيين غير مسموح بها هنا
    سبب: تم استخدام إحدى وظائف المجموعة (مثل AVG و SUM و MAX و MIN و COUNT) في جملة WHERE أو GROUP BY.
    عمل: قم بإزالة وظيفة المجموعة من الجملتين WHERE أو GROUP BY. يمكنك الحصول على النتيجة المرجوة من خلال تضمين الوظيفة في استعلام أو جملة HAVING.
  • ORA-00935: وظيفة المجموعة متداخلة بشكل عميق جدًا
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00936: تعابير مفقودة
    سبب: تم حذف جزء مطلوب من التعبير. على سبيل المثال ، يتم إدخال أمر SELECT بدون قائمة أعمدة ، أو باستخدام تعبير نوع غير متوافق (SAL +). يمكن أن يحدث هذا أيضًا إذا تم حذف الكلمات المحجوزة مثل SELECT TABLE.
    عمل: تحقق من صيغة الأمر وأدخل الأوامر المفقودة.
  • ORA-00937: لا توجد وظيفة مجموعة واحدة
    سبب: لا يمكنك تضمين دالة مجموعة (AVG أو SUM أو COUNT أو MIN أو MAX) وتعبير عمود مخصص في استعلام في نفس الوقت ما لم يتم تضمين تعبير العمود في جملة GROUP BY.
    عمل: قم بإزالة إما تعبير العمود أو دالة المجموعة من الاستعلام ، أو أضف جملة GROUP BY التي تتضمن تعداد عمود.
  • ORA-00938: لا توجد حجج كافية للوظيفة
    سبب: تم التصريح عن عدد قليل جدًا من الوسائط في الوظيفة.
    عمل: تحقق من صيغة الدالة وأضف أي وسيطات مطلوبة.
  • ORA-00939: وسيطات كثيرة جدًا للوظيفة
    سبب: تحتوي الوظيفة على وسيطات كثيرة جدًا.
    عمل: تحقق من بناء جملة الدالة ووصف المعطيات المطلوبة فقط.
  • ORA-00940: أمر ARTER غير صالح وأمر ALTER غير صالح
    سبب: وصف خيار التعديل غير صالح. يمكن أن تكون الأقسام والجداول فقط غير مكررة. يجب أن يبدأ أمر ALTER الصالح بأحد الخيارات التالية: ALTER TABLE أو ALTER PARTITION.
    عململاحظة: تحقق من بناء الجملة للتهجئة الصحيحة للأمر ALTER.
  • ORA-00941: اسم الكتلة مفقود
    سبب: اسم المجموعة إما مفقود أو غير صالح.
    عمل: صِف اسم المجموعة الصحيح. يبدأ اسم المجموعة الصالح بحرف ، ولا يحتوي على أكثر من 30 حرفًا ، ويتألف فقط من أحرف وأرقام و $ و _ و # من الأحرف الخاصة. يجب ألا تكون كلمة محجوزة. يجب طباعة الاسم مباشرة بعد الكلمة الأساسية CREATE CLUSTER.
  • ORA-00942: الجدول أو العرض غير موجود
    سبب: هذا الجدول أو النظرة العامة غير موجود. أو يتم إدخال اسم عرض بدلاً من جدول. يمكن عرض جداول المستخدم الحالية ونظرات عامة في نظرة عامة على علامة التبويب TAB.
    عمل: تحقق من الأخطاء الإملائية وإذا كنت قد أدخلت اسم مراجعة بدلاً من جدول. أدخل الأسماء الموجودة.
  • ORA-00943: الكتلة غير موجودة
    سبب: لا يتم تضمين مورد المستخدم في المجموعة بالاسم الموصوف.
    عمل: صف اسم المجموعة الصحيح مباشرة بعد الكلمة الأساسية CLUSTER.
  • ORA-00944: عدد غير كافٍ من الأعمدة المجمعة
    سبب: جرت محاولة لإنشاء جدول يحتوي على عدد أقل من الأعمدة المجمعة مما هو موضح في الأمر CREATE CLUSTER. يجب أن يصف تعبير CLUSTER للأمر CREATE TABLE جميع الأعمدة المجمعة المحددة عند إنشاء المجموعة. باستخدام اسم المجموعة ، يمكنك عرض جميع أعمدة المجموعة في جدول قاموس COL.
    عمل: وصف جميع أسماء الأعمدة في الأمر CREATE TABLE.
  • ORA-00945: العمود العنقودي المحدد غير موجود
    سبب: العمود الموصوف في تعبير عبارة CREATE TABLE ليس عمودًا في هذا الجدول.
    عمل: كرر باستخدام اسم عمود الجدول.
  • ORA-00946: كلمة TO الأساسية مفقودة
    سبب: تم إدخال الأمر GRANT بدون الكلمة الأساسية TO ، أو تم استخدام صيغة غير صالحة لهذا الأمر.
    عمل: تحقق من صيغة الشكلين الرئيسيين لأمر GRANT (منح الوصول إلى قاعدة البيانات ومنح الامتيازات). أدخل الكلمة الأساسية TO بشكل صحيح في أمر GRANT.
  • ORA-00947: قيم غير كافية
    سبب: تتطلب جملة SQL مجموعتين متطابقتين من القيم ، وتحتوي المجموعة الثانية على قيم أقل. يمكن أن يحدث هذا أيضًا إذا عثر SELECT المتداخل على عدد أقل من الأعمدة في عبارة WHERE أو HAVING ، كما في: WHERE (A، B) IN (SELECT C FROM ..) يمكن أن يحدث خطأ أيضًا في عبارة INSERT حيث يكون التعبير VALUES أو لا يحتوي SELECT على قيم كافية لـ INSERT ، كما في: INSERT INTO table (A، B) VALUES ("C").
    عمل: تحقق من قوة كل مجموعة واجعلها متساوية في العدد.
  • ORA-00948: لم تعد عبارة ALTER CLUSTER مدعومة
    سبب: تمت إزالة عبارة ALTER CLUSTER
    عمل: لإضافة بيانات من جدول ، استخدم المجموعة التالية من عبارات SQL: CREATE TABLE<новая_таблица>اختر من<старая_таблица>العنقودية<имя_группы>يسقط<старая_таблица>وإعادة تسمية الجدول<новая_таблица> <старая_таблица>.
  • ORA-00949: مرجع غير قانوني لقاعدة البيانات الخارجية
    سبب: هذه رسالة خطأ داخلية لا يمكن أن تحدث أثناء التشغيل العادي.
    عمل: يرجى الرجوع إلى برنامج الإعداد ذي الصلة للحصول على وصف تفصيلي للمشكلة.
  • ORA-00950: خيار إسقاط optio غير صالح غير صالح
    سبب: بعد أمر DROP ، لم يكن هناك خيار DROP مثل TABLE أو VIEW أو SYNONYM أو CLUSTER أو SPACE.
    عمل: تحقق من صيغة الأمر واستخدم التنسيق الصحيح لخيار DROP.
  • ORA-00951: الكتلة ليست فارغة
    سبب: يصف الأمر DROP مجموعة غير فارغة. لا يمكن حذف المجموعة إلا إذا كانت لا تحتوي على جداول. قم بإزالة جدول من مجموعة باستخدام أمر DROP TABLE.
    عمل: قم بإزالة كافة الجداول من المجموعة ثم استخدم الأمر DROP CLUSTER.
  • ORA-00952: الكلمة الأساسية GROUP مفقودة
    سبب: تم تنفيذ المجموعة بشكل غير صحيح.
    عمل: لا يوجد إجراء مطلوب من المستخدم.
  • ORA-00953: اسم الفهرس مفقود
    سبب: في أوامر CREATE و DROP و VALIDATE INDEX ، اسم الفهرس غير صحيح أو مفقود.
    عمل: اكتب اسم الفهرس الصحيح بعد الكلمة الأساسية INDEX. إذا كنت ترغب في حذف فهرس أو تصحيحه ، فتحقق من الاسم من خلال الاطلاع على نظرة عامة على الفهارس. إذا كنت بحاجة إلى إنشاء فهرس جديد ، فتحقق من بناء الجملة أولاً.
  • ORA-00954: كلمة رئيسية غير محددة مفقودة
    سبب: تم إصدار أمر GRANT CONNECTION بدون الكلمة الأساسية غير المحددة.
    عمل: أدخل الكلمة الأساسية غير المحددة بعد اسم المستخدم. تنسيق الأمر كما يلي: منح الاتصال بـ<список пользователей>غير محدد بواسطة<пароль списка>.
  • ORA-00955: الاسم مستخدم بالفعل بواسطة كائن موجود
    سبب: جرت محاولة لإنشاء جدول أو عرض أو مجموعة أو مرادف موجود بالفعل. يجب أن يكون كل اسم جدول مستخدم مميزًا عن أسماء الجداول أو طرق العرض أو المجموعات أو المرادفات الأخرى التي يملكها مستخدمون آخرون.
    عمل: أدخل جدولًا فريدًا ، أو اسم العرض ، أو المجموعة ، أو المرادف ، أو قم بتعديل أو حذف واحد موجود.
  • ORA-00956: خيار تدقيق غير صالح - خيار تدقيق غير صالح
    سبب: كان هناك خيار تحقق غير صالح.
    عمل: تحقق من صيغة الأمر وحاول مرة أخرى باستخدام الخيار الصحيح.
  • ORA-00957: اسم عمود مكرر
    سبب: تم التصريح عن اسم العمود مرتين في عبارة CREATE أو INSERT. يجب أن يكون اسم العمود في جدول أو نظرة عامة أو مجموعة فريدًا.
    عمل: استبدل اسم العمود في الأمر CREATE بآخر فريد جديد. في الأمر INSERT ، قم بإزالة الأسماء المكررة.
  • ORA-00958: كلمة التحقق مفقودة
    سبب: مفقود التحقق مباشرة بعد الكلمة الأساسية WHITH في جملة WITH CHECK OPTION من عبارة CREATE VIEW.
    عمل: تحقق من صياغة جملة SQL.
  • ORA-00959: اسم تعريف الفضاء غير موجود
    سبب: وصف الأمر DROP SPACE اسم منطقة غير موجود.
    عمل: استخدم أسماء تعريف النطاق الحالية. لعرض الأسماء الموجودة ، حدد SNAME من SPACES.
  • ORA-00960: قيمة أولية غير صالحة
    سبب: تم تحديد قيمة غير صالحة لصفحة بيانات البدء أو رقم صفحة الفهرس في الأمر CREATE SPACE. يجب أن تكون هذه القيمة 3 على الأقل.
    عمل: أدخل قيمة أولية لا تقل عن 3.
  • ORA-00961: قيمة INCREMENT غير صالحة
    سبب: تم وصف قيمة عدد خطوات غير صالحة لصفحة البيانات أو صفحة الفهرس. يجب أن تكون قيمة الخطوة أكبر من 3.
    عمل: أدخل قيمة INCREMENT أكبر من 3.
  • ORA-00962: قيمة PCTFREE غير صالحة
    سبب: تم وصف قيمة النسبة المئوية للمساحة الخالية غير الصحيحة في تعريف SPACE. يجب أن تكون هذه القيمة في النطاق من 1: إلى 99.
    عمل: أدخل قيمة PCTFREE بين 1: و 99.
  • ORA-00963: قيمة SIZE غير صالحة
    سبب: تم تحديد قيمة حجم كتلة منطقية غير صالحة في الأمر CREATE CLUSTER. يتم استخدام حجم الكتلة المنطقية لتخزين مجموعات صغيرة من البيانات بكفاءة.
    عمل: وصف القيمة المسموح بها لحجم الكتلة المنطقية (أكبر من 0).
  • ORA-00964: اسم تعريف مساحة غير صالح
    سبب: تم تحديد اسم مجال غير صالح في الأمر CREATE / DROP SPACE أو في CREATE TABLE ، أو تم تحديد اسم مجال غير موجود في الأمر CREATE TABLE.
    عمل: أدخل اسم منطقة صالحًا. يبدأ الاسم الصالح بحرف ، ولا يحتوي على أكثر من 30 حرفًا ، ويتألف فقط من أحرف وأرقام و $ و _ و # من الأحرف الخاصة. يجب ألا تكون كلمة محجوزة. إذا كان اسمك صحيحًا ، فربما تكون قد أزلت عن غير قصد تعريف نطاق TEMP.
  • ORA-00965: اسم تعريف الفضاء موجود بالفعل
    سبب: تم استخدام اسم مجال موجود في الأمر CREATE SPACE. يجب أن تكون أسماء تعريف المجال فريدة.
    عمل: أدخل اسمًا فريدًا للمنطقة.
  • ORA-00966: الكلمة الأساسية TABLE مفقودة
    سبب: تم استخدام أمر LOCK وأخطأت في كتابة الكلمة الأساسية TABLE أو تم حذفها أو وضعها في غير مكانها. يجب أن يبدأ الأمر LOCK على النحو التالي: LOCK TABLE<имя таблицы> ... .
    عمل: أدخل الكلمة الأساسية TABLE في المكان المناسب.
  • ORA-00968: الكلمة الأساسية INDEX مفقودة
    سبب: تم استخدام الأمر CREATE UNIQUE وأخطأت في كتابة الكلمة الأساسية INDEX أو تم حذفها أو وضعها في غير محلها.
    عمل: يرجى التحقق من بناء الجملة والمحاولة مرة أخرى.
  • ORA-00969: الكلمات الرئيسية مفقودة
    سبب: تم استخدام أمر GRANT أو CREATE INDEX وأخطأت في كتابة الكلمة الأساسية ON أو تم حذفها أو وضعها في غير محلها.
    عمل: أدخل الكلمة الأساسية ON في المكان المناسب.
  • ORA-00970: مفقود مع كلمة رئيسية - مع كلمة أساسية مفقودة
    سبب: تم استخدام الكلمة الأساسية START بدون WITH. كلتا الكلمتين الأساسيتين مطلوبة في عبارة START WITH الخاصة بالاستعلام.
    عمل: استبدل كلمة START بـ START WITH.
  • ORA-00971: كلمة SET مفقودة - كلمة SET مفقودة
    سبب: في الأمر UPDATE ، تم كتابة الكلمة الأساسية SET بشكل خاطئ أو تم حذفها أو وضعها في غير محلها.
    عمل: أدخل الكلمة الأساسية SET بعد اسم الجدول لتغييرها.
  • ORA-00972: أداة التعريف كبيرة جدًا
    سبب: يتكون اسم كائن قاعدة البيانات من أكثر من 30 حرفًا. (كائنات قاعدة البيانات هي جداول ومجموعات وطرق عرض وفهارس ومرادفات وعوالم وأسماء مستخدمين.
    عمل: اختصر الاسم إلى 30 حرفًا كحد أقصى.
  • ORA-00973: تقدير عدد الصفوف غير صالح
    سبب: قيمة عدد الصفوف الموضحة في الأمر CREATE INDEX هي رقم أقل من 0.
    عمل: وصف قيمة صالحة (أكبر من 0).
  • ORA-00974: عامل تحميل كتلة فهرس غير صالح (نسبة مئوية)
    سبب: النسبة المئوية لوحدة التخزين المستخدمة ، الموضحة في الأمر CREATE INDEX ، لا تنتمي المنطقة إلى الفاصل الزمني من 1: إلى 90٪.
    عمل: أدخل قيمة PCTFREE بين 1 و 90. القيمة الافتراضية هي 10.
  • ORA-00975: التاريخ + التاريخ غير مسموح بهما
    سبب: حاول إضافة حقلي بيانات معًا. يمكن إضافة البيانات إلى حقول الأرقام فقط ، وليس إلى البيانات الأخرى.
    عمل: أضف حقل بيانات إلى حقل رقم.
  • ORA-00977: خيار تدقيق مكرر - خيار تدقيق مزدوج
    سبب: تم وصف خيار التحكم نفسه مرة أخرى.
    عمل: قم بإزالة وصف عنصر التحكم الزائد.
  • ORA-00978: دالة مجموعة متداخلة مع out GROUP BY
    سبب: تم استخدام دالة المجموعة (مثل MIN أو MAX أو AVG) داخل دالة مجموعة أخرى (مثل MAX (COUNT (*))) بدون عبارة GROUP BY مقابلة.
    عمل: إما أن تضيف عبارة GROUP BY أو تزيل مستوى التداخل الخارجي.
  • ORA-00979: لا ينتمي تعبير GROUP BY expressio إلى GROUP BY
    سبب: لا تحتوي جملة GROUP BY على كافة تعبيرات جملة SELECT. يجب إدراج التعبيرات من SELECT غير المضمنة في دالات المجموعة (COUNT ، SUM ، AVG ، MAX ، MIN) في جملة GROUP BY.
    عمل: قم بتضمين كل تعبيرات SELECT التي ليست وسيطات لتجميع الدالات في جملة GROUP BY.
  • ORA-00980: ترجمة المرادفات لم تعد صالحة
    سبب: المرادف الذي استخدمته كان لجدول أو طريقة عرض أو مرادف تم حذفه أو إعادة تسميته.
    عمل: استبدل المرادف باسم الجدول ، المنظر ، المرادف المقصود من أجله. أو قم بإعادة إنشاء مرادف للجداول أو طرق العرض أو المرادفات الصحيحة.
  • ORA-00981: لا يمكن مزج خيارات التدقيق على مستوى النظام والجدول
    سبب: في نفس الوقت يتم وصف خيار العرض لكل من الجدول والنظام في نفس بيان التدقيق.
    عمل: صحح عامل التشغيل.
  • ORA-00982: علامة الجمع مفقودة
    سبب: عند الإلحاق ، لا توجد علامة الجمع (+) بعد القوس الأيسر. عند الإلحاق ، يتم تفسير القوس الأيسر (المفتوح) على أنه يصف الملحق ، ومن المتوقع وجود علامة الجمع. لوصف مرفق بعمود ، يجب أن يتبع وصف العمود بعلامة زائد محاطة بأقواس (+).
    عمل: تصحيح بناء جملة SQL.
  • ORA-00984: العمود غير مسموح به هنا
    سبب: تم استخدام اسم العمود حيث لا يُسمح به ، كما هو الحال في جملة VALUES من جملة INSERT.
    عمل: تحقق من صيغة الأمر واستخدم أسماء الأعمدة في الأماكن المسموح بها فقط.
  • ORA-00985: اسم برنامج غير صالح
    سبب
    عمل
  • ORA-00986: اسم (أسماء) مجموعة مفقود أو غير صالح - اسم (أسماء) مجموعة مفقود أو غير صالح
    سبب: هذه الخاصية غير منفذة.
    عمل: لا يلزم اتخاذ أي إجراء من قبل المستخدم.
  • ORA-00987: اسم (أسماء) مستخدم مفقود أو غير صالح
    سبب: لم يتم تحديد اسم المستخدم في أمر GRANT أو أن أحد الأسماء المحددة غير صحيح. يجب أن تظهر أسماء المستخدمين الصالحة بعد كلمة TO في أمر GRANT. يبدأ اسم المستخدم الصالح بحرف ، ويقتصر على 30 حرفًا ، ويتألف فقط من أحرف وأرقام و $ و _ و # من الأحرف الخاصة. يجب ألا تكون كلمة محجوزة.
    عمل: صِف اسم مستخدم صالحًا (أو قائمة مستخدمين) بعد الكلمة الأساسية TO في أمر GRANT.
  • ORA-00988: كلمة (كلمات) مرور مفقودة أو غير صالحة
    سبب: هناك أسماء مستخدمين أكثر من كلمات المرور في أمر GRANT. يجب تحديد كلمة مرور صالحة لكل مستخدم مدرج في أمر GRANT.
    عمل: أدخل كلمة المرور الصحيحة لكل مستخدم.
  • ORA-00989: تم توفير عدد كبير جدًا من كلمات المرور لأسماء المستخدمين
    سبب: يوجد عدد كلمات مرور أكثر مما تم وصفه بواسطة أسماء المستخدمين في أمر GRANT. يجب إدخال كلمة مرور واحدة فقط لكل مستخدم مدرج في أمر GRANT.
    عمل: أدخل نفس عدد المستخدمين وكلمات المرور.
  • ORA-00990: امتياز مفقود أو غير صالح
    سبب: لم يتم التصريح عن أي امتيازات في الأمر الخاص بامتيازات GRANT ، أو أن أحدها غير صالح.
    عمل: أدخل واحدًا أو أكثر من الامتيازات الصالحة. يُسمح بالامتيازات التالية: SELECT و INSERT و DELETE و UPDATE و ALTER و INDEX و DROP و CLUSTER و ALL. يمكن منح أكثر من امتياز واحد عن طريق إدخالها في قائمة مفصولة بفواصل (،) أو عن طريق وصف الكلمة ALL لمنح جميع الامتيازات.
  • ORA-00991: تنسيق لا يمكن التعرف عليه لأمر GRANT
    سبب: تم إدخال نموذج غير صالح لأمر GRANT.
    عمل: تحقق من بناء جملة الأمر.هناك نوعان من أوامر GRANT. يستخدم النوع الأول لتحديد وصول المستخدم إلى قاعدة البيانات ويجب أن يكون بالتنسيق التالي: منح الاتصال / الموارد / ديسيبل إلى<имя пользователя>التي حددتها<пароль>. يجب أن تكون واحدة على الأقل من الكلمات الأساسية CONNECT أو RESOURCE أو DBA موجودة. النوع الثاني يستخدم لمنح الامتيازات لكائنات قاعدة البيانات وله التنسيق: GRANT<список привелегий>على<обзор/ таблица>ل< индентификатор пользователя>/عامة.
  • ORA-00992: تنسيق لا يمكن التعرف عليه لأمر REVOKE
    سبب: تم إدخال نموذج غير صالح للأمر REVOKE.
    عمل: تحقق من صيغة الأمر وأعد المحاولة.
  • ORA-00993: كلمة GRANT الأساسية مفقودة
    سبب: تم الإعلان عن الخيار WITH في نهاية أمر GRANT بدون خيار GRANT. لمنح امتيازات لمستخدم والإذن لمنحها لمستخدمين آخرين ، استخدم خيار WITH GRANT OPTIO في نهاية أمر GRANT.
    عمل: استبدل الكلمة الأساسية بـ "بخيار المنحة".
  • ORA-00994: كلمة OPTION مفقودة - كلمة OPTIO مفقودة
    سبب: تم استخدام الخيار WITH GRANT في نهاية أمر GRANT بدون كلمة OPTION.
    عمل: قم بتغيير المفتاح من WITH GRANT إلى WITH GRANT OPTION.
  • ORA-00995: معرف مرادف مفقود أو غير صالح
    سبب: في أمر CREATE أو DROP SYNONYM ، تم حذف اسم مرادف أو أنه غير صالح.
    عمل: تحقق من الأخطاء الإملائية وبناء جملة الأوامر. يجب أن يتبع اسم مرادف صالح على الفور مفتاح SYNONYM في كلا الأمرين. يبدأ اسم المرادف الصالح بحرف ، ويقتصر على 30 حرفًا ، ويتألف فقط من أحرف وأرقام و $ و _ و # من الأحرف الخاصة. يجب ألا تكون كلمة محجوزة.
  • ORA-00996: عامل التشغيل التسلسلي هو ¦¦ not ¦ - عامل التشغيل التسلسلي هو || ، ليس |
    سبب: تم فهم الضربة المفردة (|) على أنها محاولة لوصف التسلسل ، لكن عامل التسلسل يتكون من حدتين (||).
    عمل: أدخل حدًا مزدوجًا لعملية التسلسل ، أو قم بإزالة ضربة واحدة إذا لم تكن هناك حاجة إلى التسلسل.
  • ORA-00997: استخدام غير قانوني لنوع بيانات طويل
    سبب: لقد استخدمت نوع البيانات LONG ، والذي يُستخدم لتخزين بيانات أكبر من 240 حرفًا ، في دالة أو في عبارات WHERE ، GROUP BY ، ORDER BY. لا يمكن استخدام قيمة LONG إلا في عبارة SELECT.
    عمل: قم بإزالة هذا الحقل من الوظيفة أو العرض.
  • ORA-00998: يجب تسمية هذا التعبير بتسمية عمود
    سبب: تم استخدام دالة أو تعبير في الأمر CREATE VIEW ، لكن لم يتم التصريح عن اسم العمود المقابل. عند استخدام تعبير أو وظيفة لطريقة عرض ، يجب إدراج جميع أسماء الأعمدة وطرق العرض بشكل صحيح في الأمر CREATE VIEW.
    عمل: أدخل جميع أسماء أعمدة المراجعة بين قوسين بعد اسم المراجعة.
  • ORA-00999: اسم عرض غير صالح.
    سبب: اسم العرض مفقود أو غير صالح في الأمر CREATE VIEW.
    عمل: أدخل اسم عرض صالحًا فورًا بعد إنشاء طريقة عرض. يبدأ اسم التصفح الصالح بحرف ، ويقتصر على 30 حرفًا ، ويتكون فقط من أحرف وأرقام وحروف خاصة $ و _ و #. يجب ألا تكون كلمة محجوزة.