添加字符类型值时odbcparameter和oledbparameter有什么区别?

问题描述 投票:0回答:1

我正在使用C#从Oracle迁移到Tibero数据库。>>

问题是使用OleDbParameter添加“ CHAR”类型的参数时,除非根据DB列大小用以下空格填充数据,否则无法检索数据。

((使用OracleParameter或使用OdbcParameter,可以正常查询而不用填充空白作为实际列大小)?

String sSQL = @"SELECT *
                          FROM V_PROD_MA
                         WHERE CAR_TYPE = :CAR_TYPE
                           AND BODY_NO  = :BODY_NO";

        OleDbDataAdapter adapter = null;
        //OracleDataAdapter adapter = null;
        DataTable         table   = new DataTable();

        try
        {
            Open();

            adapter = new OleDbDataAdapter(sSQL, Connetion);

            adapter.SelectCommand.Parameters.Add("CAR_TYPE", OleDbType.Char, 4).Value = sCarType;
            adapter.SelectCommand.Parameters.Add("BODY_NO", OleDbType.Char, 6).Value = sBodyNo;

            adapter.Fill(table);
        }

上面是测试源代码,当我设置sCarType ='D0F'时,将检索数据,但是当我设置sCarType ='D0F'时,将不检索数据。

实际列大小为char(4)

您可能建议像WHERE一样更改SQL trim(car_type)语句,但是我们有大约2,000条SQL语句需要更改,因此我们想避免这种解决方案。

而且我们还使用了一个框架来包装每个SQL命令,参数,并且该框架没有列大小信息来填充空白。

还有其他方法可以避免此类问题吗?

我正在使用C#从Oracle迁移到Tibero数据库。问题是,使用OleDbParameter添加“ CHAR”类型的参数时,除非用以下空格填充,否则无法检索数据...

c# oracle11g database-migration tibero
1个回答
0
投票

Tibero社区对开发人员的支持:https://support.tmaxsoft.com/s/community

© www.soinside.com 2019 - 2024. All rights reserved.