是否可以将当前行的列作为一个类似变量的对象传递,这样我就可以在函数中从中提取一些信息?函数可以在包中
比如说
Select myfunction(column1) from dual;
字符串
然后在函数中像对象一样获取该列的信息
Function myfunction(objCol object)
Return something
Is
... declaration
Begin
schema := objCol.schema
table := objCol.table_name
...
do some other things
return something
End
型
是这样吗
1条答案
按热度按时间fcipmucu1#
默认情况下,Oracle不是面向对象的,它不会将普通列作为使用关于自身的元数据增强的对象进行传递。如果不创建自定义对象类型和变量和/或使用这些自定义对象类型的表、列和嵌套表,则传递的所有值都将是标量。因此,对于普通表,您不仅需要传入列值,还需要传入关于该列的任何属性(模式,表名,列名等):
字符串
/
型
此外,Oracle是硬类型的,因此如果您想要一个泛型函数,则需要为
my_column/column_value
的不同可能数据类型创建重载(在一个包中具有相同函数名的多个定义)。一个用于字符串,一个用于数字,一个用于日期,等等。