0

我的情况如下:我想对数据库进行查询,我想获得的字段之一是来自被调用函数的结果。问题是函数的返回类型被声明为%TYPE与某个表中某个列的数据类型相关联。但是,在该查询中,我需要将此字段作为DATE. 有没有办法将此函数的结果转换为DATE数据类型?

询问:

select t1.some_field    as A,
       t1.another_field as B,
       my_function()    as C
  from my_table t1;

功能规格:

create or replace function my_function as
(
param1 default null
)
return my_table2.column_name%TYPE;
4

1 回答 1

0

由于my_table.column_name%TYPE只是解析为 a DATE,因此无需强制转换它 -C查询中的数据类型将自动为 a DATE

如果将来有人更改表中列的数据类型,则函数返回的数据类型会发生变化(假设函数声明没有变化)。这将改变 column 的数据类型C。但在这种情况下,如果您想返回 a,您实际上将需要更改查询,DATE因为您必须添加逻辑以将数据从列更改为的任何数据类型转换为 a DATE

于 2013-09-30T18:18:50.420 回答