4
|
Tomek Szpakowicz · 技术社区 · 14 年前 |
1
2
我个人的偏好是使用绑定变量字符串(varchar2),并让Oracle将字符转换为自己的内部存储格式。很容易(在C中)得到以可接受的格式表示为以空结束字符串的数据值。 因此,不要像这样编写SQL:
我这样写SQL:
并提供字符串作为绑定变量。 这种方法有几个优点。 一种是解决绑定其他数据类型时遇到的问题和错误。 另一个优点是绑定值更容易在OracleEvent10046跟踪上解密。 另外,一个explain计划(我相信)期望所有绑定变量都是varchar2,这意味着被解释的语句与正在执行的实际语句略有不同(由于当实际语句中的bind参数的数据类型不是varchar2时隐式的数据转换)。 而且(不太重要)当我在toad中测试语句时,只需要在输入框中输入字符串就可以了,而不必在下拉列表框中修改数据类型。 我还允许butin to_number和to_date函数验证数据。(至少在Oracle的早期版本中,我遇到了直接绑定日期值的问题,它绕过了(至少部分)有效性检查,并允许将无效的日期值存储在数据库中。 这只是个人偏好,基于过去的经验。我对PerlDBD使用相同的方法。 我想知道TomKyte(asktom.oracle.com)对这个话题有什么看法? |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
Anar · Oracle SQL用户定义函数 2 年前 |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |