2011-03-23 3 views
1

최근 Oracle 11g를 사용하기 위해 유지 관리하는 응용 프로그램 (.NET 2.0)을 업그레이드했습니다. 이 응용 프로그램은 MS Enterprise Library 2.0을 사용합니다. 우리는 database.ExecuteNonQuery (Oracle.DataAccess.Client.OracleCommand) 메서드가 호출 될 때 저장 프로 시저가 매개 변수를 숫자로 기대하지만 문자열을받을 때 폭탄을 발견했습니다. 이것은 업그레이드하기 전에는 발생하지 않았습니다. 매개 변수를 Int로 변환하면 오류가 발생하지 않습니다. 누구든지이 문제가 발생 했습니까? 업그레이드 중에 놓친 것이 있습니까? 문제는 11g 데이터베이스 또는 10g 데이터베이스에 도달했는지에 관계없이 발생합니다.Oracle 11g 저장 프로 시저 매개 변수 문제

이 질문이 애매한 경우 사과드립니다.

도움 주셔서 감사합니다.

편집 : ExecuteDataReader가 호출 될 때 (데이터 형식의 암시 적 변환을 처리 할 때)이 동일한 문제가 발생하지 않는다는 점을 간과했습니다.

+0

"폭탄"이라고하면 "그게"무엇입니까? 신탁? .그물? MS 엔터프라이즈 라이브러리? 오류 메시지, 오류 번호, 호출 스택 등은 무엇입니까? –

+0

Oracle "invalid input string []"오류가 수신되었습니다. 결국 우리는 코드를 샅샅이 뒤지고 모든 매개 변수 유형 불일치를 수정했습니다. –

답변

2

올바른 데이터 형식을 저장 프로 시저에 전달할 수 있도록 코드를 변경해야합니다.

소리가 마침내 강요하는 것처럼 들립니다.

+0

코드를 변경하는 것이 중요한 작업이므로 최후의 수단입니다. 또한 일관성이없는 것 같습니다. 일부 방법에서는 불일치가 오류를 유발하지 않지만 다른 경우 불일치가 발생합니다. 또한 db.ExecuteDataReader를 실행하는 경우 문제가되지 않는 것 같습니다. 다른 생각? –

관련 문제