PL/SQL我可以从函数强制转换一个%类型变量吗?

PL/SQL我可以从函数强制转换一个%类型变量吗?,sql,database,plsql,oracle11g,Sql,Database,Plsql,Oracle11g,我的例子如下:我想对数据库进行查询,其中一个字段是调用函数的结果。问题是函数的返回类型被声明为%type,它与某个表中某个列的数据类型相关联。但是,在该查询中,我需要将此字段作为日期。是否有可能将此函数的结果强制转换为DATE数据类型 查询: select t1.some_field as A, t1.another_field as B, my_function() as C from my_table t1; 函数的规格: create or r

我的例子如下:我想对数据库进行查询,其中一个字段是调用函数的结果。问题是函数的返回类型被声明为
%type
,它与某个表中某个列的数据类型相关联。但是,在该查询中,我需要将此字段作为
日期
。是否有可能将此函数的结果强制转换为
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;

由于
my\u table.column\u name%TYPE
只解析为
DATE
,因此无需强制转换它——查询中
C
的数据类型将自动为
DATE


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

my_table2.column_name%type的数据类型是什么?那是日期吗?
时间戳
?如果不是,您将如何将其转换为
日期
(例如,它是一种特定格式的
VARCHAR2
)?对不起,我忘了提到它。表中字段的类型只是一个日期,这里真的没有问题。只要这样做,就会发现它能按预期工作。