0

对,先介绍一下背景......我有一个 oracle 包,它具有以下内容:

g_variable    constant varchar(6):= pkg_sample.get_config_num('test');

“get_config_num”上面的函数将该值作为整数值检索。这似乎有效并返回正确的值。然而,检索到的“测试”的值实际上是一个 varchar,所以它不应该工作。对偶运行“pkg_sample.get_config_num('test')”我得到(null)但在应用程序中它似乎显示了正确的值。

我是否正确地假设因为我们有“constant varchar(6)”,所以我们将其类型(强制转换)分配为 varchar,以便它能够找到它?

4

1 回答 1

1

显然,发生了两种隐式数据类型转换——一种在函数中,另一种在将函数的值分配给常量时。

我会对此感到不舒服,并且更愿意使用 get_config_string 过程。get_config_date 也很方便。

于 2013-10-16T11:29:00.977 回答