选择c#中oracle表的最大值

本文关键字:最大值 oracle 选择 | 更新日期: 2023-09-27 18:17:14

我有一个OracleCommand选择类型NUMBER的最大值从oracle表在c#应用程序中使用oraclecconnection。当代码被执行时,我得到的值以M字母结尾!所以如果我们假设最大值是2544,那么我得到的最大值是2544M。

下面是代码:
OracleCommand command = new OracleCommand("SELECT GREATEST(TA_Counts) FROM Test3.Trn_Sfd", Con2);
Con2.Open();
var returvalue = command.ExecuteScalar();

为什么value不作为2544 int值返回?

选择c#中oracle表的最大值

因为该值为decimal。这是由于表中列的类型造成的。你可以通过这个表格来验证。如果您的数据类型是整数或浮点,阅读器返回的。net类型是decimal

Greatest不给你表的最大值:

SQL> with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select GREATEST(id)  
  6    from t
  7  /
GREATEST(ID)
------------
           1
           2

GREATEST函数给出几个值中的最大值,如:

SQL> ed
Wrote file afiedt.buf
  1  with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select GREATEST(id, value)
  6*   from t
SQL> /
GREATEST(ID,VALUE)
------------------
                 2
                 4

你必须使用max函数:

SQL> ED
Wrote file afiedt.buf
  1  with t as (
  2    select 1 id, 2 value from dual union all
  3    select 2 id, 4 value from dual
  4  )
  5  select max(id)
  6*   from t
SQL> /
   MAX(ID)
----------
         2

可能需要使用隐式转换:

(int)command.ExecuteScalar()

使用你需要的类型