Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Oracle.ManagedDataAccess.Client - 쿼리 수행 시 System.InvalidOperationException

혹시 저처럼 ^^; 바보같은 코드로 시간을 허비하는 분들이 계실지 몰라 기록을 남깁니다.

무심코, 귀찮아서 대충 만든 다음의 예제 코드를,

using (OracleConnection oraConnection = new OracleConnection(oradb))
{
    oraConnection.Open();

    OracleCommand command = new OracleCommand();
    command.CommandText = "begin dbms_lock.sleep(10); end;";
    command.ExecuteNonQuery();
}

실행했더니 이런 오류가 발생합니다.

System.InvalidOperationException
  HResult=0x80131509
  Message=Operation is not valid due to the current state of the object.
  Source=Oracle.ManagedDataAccess
  StackTrace:
   at Oracle.ManagedDataAccess.Client.OracleCommand.ValidateStatePriorToExecution()
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()
   at webform_net48_sample.OracleManaged.DoOracleManagedCall(Int32 delay) in C:\temp\webform_net48_sample\OracleManaged.aspx.cs:line 102

  This exception was originally thrown at this call stack:
    Oracle.ManagedDataAccess.Client.OracleCommand.ValidateStatePriorToExecution()
    Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteNonQuery()
    webform_net48_sample.OracleManaged.DoOracleManagedCall(int) in OracleManaged.aspx.cs

처음에는, 위에서 실행한 "begin dbms_lock.sleep(10); end;" 명령어의 뭔가 특별한 예외 규칙이 있나 싶어서 웹 검색을 하며 시간을 보냈는데요, 알고 보니... 코드에 문제가 있었습니다. ^^;

코드를 잘 보시면, OracleCommand 인스턴스에 Connection 개체를 연결하지 않았던 것입니다. 음... 그럼 오류 메시지를 좀 더 친절하게 연결 개체가 누락됐다고 표현해 주면 좋았을 텐데 "Operation is not valid due to the current state of the object."라고 나오니. ^^;

참고로, Microsoft.Data.SqlClient의 경우 위의 상황에서 "ExecuteNonQuery: Connection property has not been initialized."라는 명확한 오류 메시지를 보여줍니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/17/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  184  [185]  186  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
473정성태3/4/200736534디버깅 기술: 14. TFS 오류 추적(TF53010, TF14105)
472정성태3/3/200735129디버깅 기술: 13. 예외 발생 시 Minidump 생성 - WinDBG [3]파일 다운로드1
471정성태3/1/200724623디버깅 기술: 12. Managed Method에 Break Point 걸기
469정성태2/28/200736286디버깅 기술: 11. (Managed) Main Method에 Break Point 걸기 [3]파일 다운로드1
470정성태3/1/200727879    답변글 디버깅 기술: 11.1. (Managed) Main Method에 Break Point 걸기 - 내용 보강
468정성태2/25/200737550COM 개체 관련: 20. 탭 브라우저의 윈도우 핸들 구하기 [3]
466정성태2/22/200729321Windows: 23. 롱혼 서버 코어 버전 [2]
465정성태2/21/200728032오류 유형: 29. TFS 관련 스케줄 작업 실패
464정성태2/25/200729331오류 유형: 28. TF10217, TF53010, TF14105 오류
463정성태2/21/200721557Team Foundation Server: 15. 포탈 사이트의 보고서 주소를 도메인 명으로 적용
462정성태2/13/200749643.NET Framework: 83. 라이브러리에 다국어 리소스 추가 방법 [4]파일 다운로드1
461정성태2/13/200726544오류 유형: 27. DLinq 예제 오류 : error: 26 - Error Locating Server/Instance Specified
460정성태2/13/200726828.NET Framework: 82. Orcas 1월 CTP에서 Linq 소스 컴파일 방법
459정성태2/17/200731406오류 유형: 26. "Automatic Updates" 서비스 CPU 100% 점유 현상 - 두 번째 이야기 [3]
458정성태2/12/200727793.NET Framework: 81. LINQ 개발 환경 설정 [1]
457정성태2/8/200731585.NET Framework: 80. LINQ 관련 용어 정리 및 리소스 소개 [2]
456정성태2/6/200730345Windows: 22. 가상화에 대해서.
455정성태2/4/200725031오류 유형: 25. 원격 데스크톱 환경에서의 Virtual Server 관리 환경 제어
454정성태2/4/200722237오류 유형: 24. VPC에서의 Vista 네트워킹 문제
509손대성6/24/200724798    답변글 오류 유형: 24.1. [답변]: 오류 유형 : 23. VPC 에서의 Vista 네트워킹 문제
453정성태2/4/200730847개발 환경 구성: 21. 서버 측 SoapExtension을 클라이언트에 알리고 싶다
452정성태1/31/200730937VC++: 31. 비스타에서 VS.NET 2005로 COM 프로젝트 빌드시 오류 [2]
451정성태1/31/200730088Windows: 21. Preview Handler 소개
450정성태1/30/200738846VS.NET IDE: 43. .NET에서의 필수 무결성 제어 조절하는 방법 - Manifest 파일 이용파일 다운로드2
449정성태2/4/200735313Windows: 20. UAC 이모저모 [2]
448정성태1/28/200731103Windows: 19. 3가지 유형의 가젯 프로그램
... 181  182  183  184  [185]  186  187  188  189  190  191  192  193  194  195  ...