【问题标题】:XSD data set with Oracle database带有 Oracle 数据库的 XSD 数据集
【发布时间】:2014-06-18 20:43:49
【问题描述】:

我在当前项目中使用的 XSD 数据集映射有一个重大问题。 我们正在使用 XSD 进行一些数据抽象(与使用参数化 SQL 或 StoredProc 相比,它更快且更易于维护),并且在我的机器上(在 VS 开发环境中运行)你工作得很好。

但是,在我们用于测试的预生产服务器上,XSD 无法正常工作:某些方法调用将失败并出现以下错误:

System.ArgumentException: Value does not fall within the expected range.
at Oracle.DataAccess.Client.OracleParameter.set_DbType(DbType value)

以前有人遇到过这个问题吗?被调用的方法是使用 1-3 个参数的简单选择语句,正如我之前所说,它们在我的机器上运行良好。

【问题讨论】:

    标签: c# .net oracle xsd


    【解决方案1】:

    在将我们的数据集 (XSD) 从使用 System.Data.OracleClient 转换为 Oracle.DataAccess.Client 后,我们也遇到了这个问题。

    问题在于数据集设计器仍在使用“Number”作为 ProviderType 的数据类型。 Oracle 不支持“Number”数据类型。我们必须为每个表适配器更改每个数据集中的 ProviderType,并为表适配器中的每个查询更改每个参数集合。我们为 ProviderType 使用了“Decimal”,它似乎工作正常。不要忘记检查自动生成的“选择”、“更新”和“删除”查询。

    希望这会对某人有所帮助。

    【讨论】:

    • 这对我使用 ODP.NET (Oracle.ManagedDataAccess.Client) 有效,但我还需要将引用从 DbType="VarNumeric" 更改为 DbType="Decimal"
    猜你喜欢
    • 1970-01-01
    • 2020-07-27
    • 2010-09-05
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多