java.sql.sqlexception : ORA-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"]
.

위의 Whay 이상이 발생 했습니까?해결책이란 무엇입니까?

도움이 되었습니까?

해결책

솔루션을 찾았습니다. 문제점은 사용자가 데이터베이스에 연결하는 사용자입니다. 대상 유형에 대한 부여가 없습니다. 나는 사용자에게 그랜트를 추가하고 응용 프로그램이 잘 작동했습니다.

다른 팁

이 문제의 또 다른 이유를 발견했습니다.오브젝트 이름을 소문자 이름으로 작성할 때 오라클 던지기 예외를 던지므로 전체 대문자 객체 이름 문제 해결

내 경우에는 값이 null 값이 있는지 여부를 확인하는 감사 트리거로 인해 발생합니다.

SQL 식의 값이 null이면이 오류가 트리거됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top