سؤال

أنا أغير قاعدة البيانات الخاصة بي من postgresql إلى أوراكل 11G. أنا أستخدم السبات 3.0 مع جافا والغربات.

كل شيء يعمل بشكل جيد مع postgresql.

لقد غيرت التالية في ملف Hibernate.cfg.xml.

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="hibernate.connection.password">mypassword</property>
    <property name="hibernate.connection.url">jdbc:Oracle:thin:@192.168.1.1:1521/mydb</property>
    <property name="hibernate.connection.username">my_user</property>
    <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>

كل شيء آخر هو نفسه كما كان في postgresql.

أنا أستخدم OJDBC5.JAR

الآن عندما أقوم بتشغيل صفحتي، فإنها تعطيني الخطأ.

ORA-00903: اسم جدول غير صالح

هل يمكن لأي شخص مساعدتي فيما يتعلق بالمسألة؟

شكرًا.

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

المحلول

من المرجح أن يكون أحد الحالتين:

  1. أنت توصل كمستخدم آخر غير مالك الجدول ولا يمكن حل الاسم.
  2. هناك مشكلة في حساسية الحالة في الإشارة إلى اسم الجدول في التعليمات البرمجية أو اسمها الفعلي.

إذا لم تكن مالك الجدول (ولكن لديك منح للوصول إليها!)، فستحتاج إما أن يكون لديك مرادف أوراكل يترجم مرجعا إلى mytable في the_actual_owner.mytable، أو مرجع مؤهل المخطط مباشرة في التعليمات البرمجية الخاصة بك.

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

لتزويدنا بمعلومات إضافية، قم بالتواصل مع نوع من أداة SQL AD-HOC نفس المستخدم مثل تطبيقك ونشر نتائج:

حدد المالك، table_name من all_tables حيث table_name = 'thenameofthetableofinterest'؛

نصائح أخرى

ومع ذلك، من المحتمل أن يكون DPBradley صحيحا، وأعدت فقط إلى المشكلة التالية مع 11G والإسبات: - سيتيح لك Oracle 11G تحديد جدول باسم أكبر من 30 حرفا - ومع ذلك، لا يمكنك الرجوع بالفعل إلى هذا الجدول في SQL بيان لأن اسمها طويل جدا.

  • لا يبدو أن DDL الإئنات المولدة إخراج الإخراج يهتم أو تحذر عند إنشاء DDL
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top