十六进制与十进制作为OracleCommand参数

时间:2009-11-12 14:42:34

标签: c# .net oracle

我正在查看我工作的前雇员编写的一些代码,我注意到他有时使用十六进制表示法,其他时候使用十进制表示法。因为他早已离开我不能问他为什么,所以我希望这里有人可以看一看并启发我。

   command.Parameters.Add("PI_EMPLOYEE_NUM", 
          OracleDbType.Varchar2, Trim(cn, 50), 
          ParameterDirection.Input);
   command.Parameters.Add("PI_EMPLOYEE_DISPLAY_NM", 
          OracleDbType.Varchar2, Trim(displayName, 0xff), 
          ParameterDirection.Input);
   command.Parameters.Add("PI_EMPLOYEE_ADDR_TXT", 
          OracleDbType.Varchar2, Trim(streetAddress, 0xff), 
          ParameterDirection.Input);
   command.Parameters.Add("PI_EMPLOYEE_MAIL_CD", 
          OracleDbType.Varchar2, Trim(postOfficeBox, 50), 
          ParameterDirection.Input);

3 个答案:

答案 0 :(得分:1)

通常,当表示的数字更多是技术计算机或硬件限制参数时,使用十六进制是有意义的,因为这些类型的值通常基于base-2结构,因为内部限制与数量相关联可以用某个二进制数表示的潜在值(例如,存储在8位字节或16位无符号整数中的值)

当值是业务限制时,更常用的是十进制表示,由一些与计算机或技术细节无关的外部业务模型规则驱动。

这可能不是你长期以来的同事所做的,但这是一种常用的模式。除此之外,两个表示中没有功能差异。

答案 1 :(得分:0)

看起来他正在使用字符串的十六进制和数字的十进制。

答案 2 :(得分:0)

我认为他使用十六进制表示0xff(255)表示它是(2 ^ 8 - 1)是有原因的。我不知道原因是什么。也许Oracle的列宽为2,效果更好?我之前从未听说过,所以我不知道是不是真的。

相关问题