我有一个连接 4 个表的视图
CREATE VIEW BookCopyInfo
AS
SELECT
bc.BookCopyID, b.BookTitle, m.FirstName || ' ' || m.LastName AS BorrowedBy,
l.expectedReturnDate, (SYSDATE - l.expectedReturnDate) AS NoOfDaysLate
FROM Book b, Member m, Lending l, BookCopy bc
WHERE b.BookID = bc.BookID AND l.MemberID = m.MemberID
AND l.BookCopyID = bc.BookCopyID
有一个小日期算术正在进行,可以找到一本书迟到了多少天
(SYSDATE - l.expectedReturnDate)
当我做 aSELECT * FROM BookCopyInfo
时,我得到像
4 | Human Computer Interaction | Alan Paul | 10-JUL-10 | -13.642292
所以它是正确的,-13 实际上是正确的答案。
DESC BookCopyInfo
返回
Name Null? Type
----------------------------------------- -------- ---------------
BOOKCOPYID NOT NULL NUMBER(38)
BOOKTITLE NOT NULL VARCHAR2(100)
BORROWEDBY VARCHAR2(126)
EXPECTEDRETURNDATE NOT NULL DATE
NOOFDAYSLATE NUMBER(38)
然而在 C#
DataTable dtBookInfo = new DataTable();
da = new OracleDataAdapter("SELECT * FROM BookCopyInfo", con);
da.Fill(dtBookInfo);
在 da.Fill 行中捕获异常
用户代码未处理 OverflowException。
算术运算导致溢出。
为什么它在 SQLPlus 中运行良好但在 C# 中失败?:S