.NET 응용 프로그램에서 Oracle 데이터베이스에 액세스하고 있습니다. 내 코드의 구조는 다음과 같습니다 :Oracle SQL 문 LONG DB에서 검색되지 않음
using (OracleConnection conn = new OracleConnection(Oradb))
{
conn.Open();
string sql = "SELECT RI_DESCRIPTION
FROM RI_RISK
WHERE RI_CODE = 'GAIL'";
OracleCommand cmd = new OracleCommand(sql, conn);
cmd.CommandType = CommandType.Text;
OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
var result = dr.GetString(0);
Assert.AreEqual("Golden Arches Insurance", result);
}
이제이 문장은 반환 할 수 없습니다.
하지만, 내가 기대 무슨 반환이 문을 얻을 수는 :
string sql = "SELECT CLI_ABBRNAME
FROM CLI_CLIENT
WHERE CLI_CLIENTNUMBER = 00404";
나는 테이블과 열 이름이 올바른지 여러 번 확인했다. 내가 볼 수있는 유일한 차이점은 데이터 유형입니다 :
- RI_DESCRIPTION는
- RI_CODE는
- CLI_CLIENTNUMBER는
- CLI_ABBRNAME 따라서
VARHCHAR2입니다 VARCHAR2입니다 VARCHAR2입니다 LONG이다, 뭔가 내가있다 코드에서 수행하지 않는 LONG과 관련이 있습니까?
또한 CLI_CLIENTNUMBER는 실제로 VARCHAR2입니다. 왜냐하면 VARCHAR2 인 RI_CODE는 'GAIL'주위에 아포스트로피가 필요하지만 (반면에 무효 식별자를 얻는 반면에) 명세서에서 00404 주위에 단일 아포스트로피가 필요하지 않습니다. 예외
** 편집
문이 잘 SQL에서 완벽하게 작동플러스
** 편집 - 솔루션
, 대답에있는 링크를 다음의 OracleC을 설정하는 트릭이었다 객체 InitialLONGGetchSize를 -1로 설정합니다.
DB를 엉망으로 나타납니다 당신이하는 일은 동일합니다 . –
응용 프로그램이 아닌 데이터베이스에 대해 sql을 직접 실행하십시오. - 예상 결과를 얻는 지 확인하십시오. –