当转换为char?
时,如何禁用删除十进制的前导零?例如:
select to_char(0.1) from dual;
返回.1,而不是0.1。
我知道我可以使用格式参数,但我希望它对于隐式转换是正确的。
我有很多用于从数据库获取数据的plsql代码。 在某些情况下,存在从float到varchar2的转换。
例如,当列类型的请求为数字时,将 dbms_sql.define_array 与 varchar2 表一起使用。
我可以尝试找到所有这些东西并纠正它们(我这样做),但恕我直言,这是为这种转换设置规则的更好方法。
提前致谢。
答案 0 :(得分:0)
Afaik你不能改变隐式转换的默认格式。
如果您仅限于在给定表的插入/更新的上下文中使用转换,则可以使用database triggers模仿预期的行为。与查看该用例的快速格式模型相比,我没有看到任何优势。
有一些官方的oracle文档声称你可以通过在java中重新实现它们来覆盖内置函数。我从来没有这样做过,我不知道这是否是一种通常可行的方法,我强烈反对任何修改数据库API的尝试(因此,包括nolink)!
假设您的目标在某种程度上是可行的,请重新考虑为什么您不想明确指出转换格式。少数额外的击键对开发人员来说几乎不会造成麻烦,而成语则有助于自我记录的代码库。
比执行微优化更明智地花费您的开发资源!