أورا - 03001 ميزة غير منفذة عند تشغيل حدد في جافا
سؤال
حاولت تشغيل بعد تحديد الاستعلام على أوراكل 11 جرام من جافا (باستخدام برنامج تشغيل رقيقة) عندما حصلت على رمز الخطأ هذا مرة أخرى.سؤالي هو لماذا أحصل على هذا الخطأ?أفترض أنه يجب أن يكون مشكلة مع برنامج التشغيل الرقيق ولكن لا يمكنني معرفة ما يمكن أن يكون لأنه يدعم الاستعلام المحدد...الثابتة والمتنقلة مساعدتي !
java.sql.SQLException: ora-03001 unimplemented feature
نسخة أورا:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
"CORE 11.2.0.1.0 Production"
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
كان الاستعلام:
query = "select e.eq_nr as \"Eqiptmentnummer\", f.file_name as \"Dateiname\" e.adress as \"Adresse\","
+ " e.city as \"Ort\", e.county as \"Bundesland\", e.zip_code as \"PLZ\","
+ " e.manufacturer as \"Hersteller\" f.doc_info as \"DOC INFO\""
+ " from elevators e join files f on(e.eq_nr = (select eq_nr from file_links where file_id = f.file_id))";
باستخدام بريباردستاتيون و إكسكوتيكيري:
PreparedStatement ps = c.getCon().prepareStatement(query);
ResultSet rs = ps.executeQuery();
ركضت هذا الاستعلام في سكل المطور وأعطاني هذا الإخراج (جميع المصاعد والملفات المرتبطة بها) ، وهو الصحيح:
eq_nr | file_name | adress | city |county| zip |manufaturer| note
1000 testname1.pdf somestreet 12 Vienna Vienna 1200 OTIS test insert brown 1
1000 testname2.pdf somestreet 12 Vienna Vienna 1200 OTIS test insert brown 2
1000 testname4.pdf somestreet 12 Vienna Vienna 1200 OTIS test insert brown 4
1001 testname.pdf somestreet 123 Vienna Vienna 1200 KONE test insert brown
1001 testname3.pdf somestreet 123 Vienna Vienna 1200 KONE test insert brown 3
1001 testname5.pdf somestreet 123 Vienna Vienna 1200 KONE test insert brown5
1001 testname6.pdf somestreet 123 Vienna Vienna 1200 KONE test insert brown 6
اختر * من المصاعد:
elevator id| adress | city | county | zip | manufacturer
1000 somestreet 12 Vienna Vienna 1200 OTIS
1001 somestreet 123 Vienna Vienna 1200 KONE
اختر * من الملفات:
[FILE_ID] [FILE_NAME] [FILE_PATH] [FILE_TYPE] [LAST_CHANGED] [ARCHIVE_FLAG][DOC_INFO]
77 [testname.pdf] [C:\testname.pdf] [pdf] 27.02.14 19:08:39,720000000 0 [test insert brown]
987 [testname1.pdf] [C:\testname1.pdf] [pdf] 27.02.14 19:08:55,195000000 0 [test insert brown 1]
76523 [testname2.pdf] [C:\testname2.pdf] [pdf] 27.02.14 19:09:09,735000000 0 [test insert brown 2]
123323 [testname3.pdf] [C:\testname3.pdf] [pdf] 27.02.14 19:09:35,912000000 0 [test insert brown 3]
1232 [testname4.pdf] [C:\testname4.pdf] [pdf] 27.02.14 19:09:49,219000000 0 [test insert brown 4]
8888212 [testname5.pdf] [C:\testname5.pdf] [pdf] 27.02.14 19:10:08,267000000 0 [test insert brown5 ]
5678 [testname6.pdf] [C:\testname6.pdf] [pdf] 27.02.14 19:10:22,213000000 0 [test insert brown 6]
اختر * من روابط الملفات:
eq_ nr file_id valid
1000 76523 0
1000 1232 0
1000 987 0
1001 5678 0
1001 8888212 0
1001 123323 0
1001 77 0
المحلول
قد تكون مجرد مشكلة لصق نسخة.في كل استعلام قمت بنشره كنت في عداد المفقودين فاصلة بين
f.file_name as \"Dateiname\" e.adress as \"Adresse\",
لكن التعديل أعلاه لا.
f.file_name as \"Dateiname\", e.adress as \"Adresse\",
يمكن أن يكون بهذه البساطة?;)
نصائح أخرى
أفترض أن تركيبة الانضمام/التحديد الفرعي ليست قياسية.أود أن أقترح شيئا مثل
query = "select e.eq_nr as \"Eqiptmentnummer\", f.file_name as \"Dateiname\" e.adress as \"Adresse\","
+ " e.city as \"Ort\", e.county as \"Bundesland\", e.zip_code as \"PLZ\","
+ " e.manufacturer as \"Hersteller\" f.doc_info as \"DOC INFO\""
+ " from elevators e"
+ " join files f on (e.eq_nr = f.eq_nr)"
+ " where e.eq_nr in ("
+ " select f.eq_nr"
+ " from files f"
+ " join file_links fl"
+ " where fl.file_id = f.file_id"
+ ")";
تحرير
query = "select e.eq_nr as \"Eqiptmentnummer\", f.file_name as \"Dateiname\", e.adress as \"Adresse\", e.city as \"Ort\", e.county as \"Bundesland\", e.zip_code as \"PLZ\", e.manufacturer as \"Hersteller\", f.doc_info as \"DOC INFO\""
+ " from elevators e"
+ " join file_links fl on (e.eq_id = fl.eq_id)"
+ " join files f on (f.file_id = fl.file_id)";