java.sql.SQLException:أورا-01403:لم يتم العثور على بيانات في struct.getDescriptor().getMetaData()

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

  •  21-12-2019
  •  | 
  •  

سؤال

ط استخدام oracle.sql.STRUCT فصل.عن طريق الكود التالي :

ResultSetMetaData metaData = struct.getDescriptor().getMetaData();

أحصل على هذا الاستثناء:

java.sql.SQLException: ORA-01403: no data found
ORA-06512: at line 1
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:218) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:969) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.oracore.OracleTypeADT.initADTAttrNames(OracleTypeADT.java:2423) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.oracore.OracleTypeADT.getAttributeName(OracleTypeADT.java:2246) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.StructMetaData.getColumnName(StructMetaData.java:175) ~[ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]

لماذا حدث الاستثناء أعلاه؟ما هو الحل؟

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

المحلول

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

نصائح أخرى

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

في حالتي، يحدث هذا بسبب مشغل التدقيق الذي يتحقق مما إذا كانت القيم لها قيمة NULL.

إذا كانت القيمة من تعبير SQL فارغة، فسيتم تشغيل هذا الخطأ.

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