OracleParameter.Size 有啥影响?

Posted

技术标签:

【中文标题】OracleParameter.Size 有啥影响?【英文标题】:What's the OracleParameter.Size influence?OracleParameter.Size 有什么影响? 【发布时间】:2012-05-08 00:26:00 【问题描述】:

在 DAL 中开发使用 ODP .NET 的应用程序时,总是设置 OracleParameterSize 属性非常烦人。例如:

getSPTimeCommand.Parameters.Add("pStartTime", OracleDbType.Varchar2, ParameterDirection.Output).size = 200;

是不是很丑?考虑自动设置OracleParameterSize 参数我认为它会影响性能或内存消耗。那是什么影响?你设置Size的场景是什么?

提前致谢!

【问题讨论】:

【参考方案1】:

来自the documentation:

指定数据的最大大小,以字节或字符为单位 传输到数据库或从数据库传输。对于 PL/SQL 关联数组 Bind,Size指定PL/SQL中元素的最大数量 关联数组。

在您的情况下,它是您传递给数据库的 varchar2 的最大大小。

【讨论】:

我确实阅读了文档。问题是通过将此 Size 属性设置为 200 或 In64.MaxValue 有区别吗? 适配器会通过调用str.Length计算出字符串的长度。如果您提前指定它,它会快一点,因为适配器会在创建数据传输缓冲区之前跳过检查参数。 如果我没有指定 Size 属性,它只会抛出一个 Oracle 错误,指出 char 缓冲区太小。 实际上我的版本 odt v11 甚至没有抱怨这一点。它只是截断字符串参数并将其发送。 你能写出你的 odp 的确切版本吗?

以上是关于OracleParameter.Size 有啥影响?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中升级 minSdkVersion 有啥影响?

C# 中的 Thread.Sleep(1) 有啥影响?

使用 AsEnumerable() 对分页有啥影响?

使用不安全代码有啥影响

带宽对 lorawan 范围有啥影响?

以“//”开头的url,省略“http:”有啥影响[重复]