새로 추가 된 테이블이나 새로 추가 된 데이터가있는 이전 테이블에 대해 SQL Developer에서 간단한 select 쿼리를 실행하면 결과가 표시됩니다. 그러나 .NET 4.0에서 가장 최근의 Oracle Data Access Client를 사용하여 .NET/C#에서 동일한 쿼리를 실행하면 결과가 0이됩니다.결과를 반환하지만 SQL DEVELOPER가 결과를 반환하는 .NET ODAC 쿼리
연결 문자열이 올바른지, 동일한 DB에 연결되어 있는지, 간단한 "select * from table"쿼리를 사용하여 테스트했는지 확인했습니다. 이전의 데이터를 쿼리하는 것과 똑같은 .NET 코드를 사용하면 ... 잘 작동합니다. 나는 이것이 일종의 버그라고 결론을 내릴 수 있습니다. 아니면 오라클 전문가 인 사람이 이런 일이 발생할 수있는 방법을 알고있을 것입니다. 나는 DB가 복잡한 기계라는 것을 알고 있습니다. 따라서 어떻게 이런 일이 발생할 수 있는지에 대한 논리적 인 설명이 가능하고 어떻게 고칠 수 있는지 기대하고 있습니다.
저는 Oracle 초보자입니다.하지만 저는 베테랑 프로그래머이자 문제 해결사입니다. 이 하나는 정말로 저를 곤란하게합니다.
내 첫 번째 질문입니다. 친절하게 ... 감사합니다.
"... 테이블이 존재하지 않습니다 ..."라는 오류를 반환하는 샘플 코드는 다음과 같습니다. 그러나 테이블 DOES가 존재하며 쿼리는 SQL DEV에서 정상적으로 작동합니다.
String prod_connstr = "Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = 10.0.0.17) (PORT = 2621)) " +
"(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XXXXX)));User Id=XXXXX;Password=XXXXX";
String sqlStr = "select * from z_test";
OracleConnection conn = new OracleConnection(prod_connstr);
try
{
conn.Open();
OracleCommand cmd = new OracleCommand(sqlStr, conn);
OracleDataReader dr = cmd.ExecuteReader();
MessageBox.Show(dr.HasRows.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString(), "Error");
}
finally
{
conn.Dispose();
}
코드를 게시하시기 바랍니다 (그것에 대해 잊어). – schglurps