0
C#으로 devart를 사용하여 저장 프로 시저에서 잘못된 행을 반환 To | NrOfOfferedChats] 날짜가 값과 비교하여 정확합니다.Oracle 데이터베이스 내가 저장 프로 시저와 오라클 데이터베이스가
(예)
[ From | To | Chats ]
2014-09-15 08:00:00,000000000 2014-09-15 09:00:00,000000000 61
2014-09-15 09:00:00,000000000 2014-09-15 10:00:00,000000000 96
2014-09-15 10:00:00,000000000 2014-09-15 11:00:00,000000000 113
2014-09-15 11:00:00,000000000 2014-09-15 12:00:00,000000000 80
은 지금은 C# 코드에서 픽업 :
using (var oraclePackage = new OraclePackage())
{
oraclePackage.Connection = DbConnection;
oraclePackage.PackageName = @"CHAOS.""HiddenPackageName""";
oraclePackage.Parameters.AddWithValue("In_Conf", conf);
oraclePackage.Parameters.AddWithValue("In_From", from);
oraclePackage.Parameters.AddWithValue("In_To", to);
oraclePackage.Parameters.AddWithValue("Out_Cursor", null).Direction = ParameterDirection.Output;
oraclePackage.Parameters["Out_Cursor"].OracleDbType = OracleDbType.Cursor;
oraclePackage.ExecuteProcedure(@"""CalculateChats""", oraclePackage.Parameters, true);
using (OracleDataReader oracleReader = ((OracleCursor)oraclePackage.Parameters["Out_Cursor"].Value).GetDataReader())
{
if (oracleReader.HasRows)
{
while (oracleReader.Read())
{
oracleReader;
}
}
}
}
그리고 오라클 데이터 출발지 oracleReader =이다 : 0015-09-14 1시 : 00000000000, 수신자 : 0015-09-14 02 : 00 : 000000000, 채팅 : 80
지금 질문 : 데이터베이스에서 C# 코드로 변경 될 수있는 원인은 무엇입니까? 그것을 해결하는 방법에 대한 제안 uld는 apreciated 수 있습니다.
글쎄, 한 가지는 C#이 호출하는 것과 다른 프로 시저 (CalculateChats vs GetStatistics)로 PL/SQL을 표시하는 것입니다. – OldProgrammer
또한, "Started"의 데이터 유형은 무엇입니까? 게시 한 코드에서 '타임 스탬프'와 'varchar2'로 번갈아 처리합니다. 동일한 코드를 호출하는 동작이 달라지면 두 가지 클라이언트 응용 프로그램에서 NLS 설정이 다르므로 다양한 암시 적 데이터 형식 변환이 수행 될 때 서로 다른 동작을하게됩니다. 명시 적 데이터 유형 변환 만 수행하도록 코드를 수정하면 문제가 해결됩니다. –
@OldProgrammer 미안하지만, 보스의 주문 패키지의 이름을 변경했다 :) –