我在SAP HANA中创建了一个表值函数:
CREATE FUNCTION f_tables
RETURNS TABLE (
column_value INTEGER
)
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN SELECT 1 column_value FROM SYS.DUMMY;
END
现在我希望能够使用字典视图发现函数的表类型。我可以在这里运行此查询:
select *
from function_parameters
where schema_name = '[xxxxxxxxxx]'
and function_name = 'F_TABLES'
order by function_name, position;
这会产生类似的结果:
PARAMETER_NAME TABLE_TYPE_SCHEMA TABLE_TYPE_NAME
---------------------------------------------------------------------
_SYS_SS2_RETURN_VAR_ [xxxxxxxxxx] _SYS_SS_TBL_[yyyyyyy]_RET
很遗憾,我似乎无法在_SYS_SS_TBL_[yyyyyyy]_RET
(和SYS.TABLES
),TABLE_COLUMNS
(以及SYS.VIEWS
)中查找VIEW_COLUMNS
表, SYS.DATA_TYPES
等,以便找到各列的定义。
请注意,使用CREATE TYPE ...
创建的显式命名表格类型会显示在SYS.TABLES
...
有没有办法让我正式查看表值函数的返回列?显然,我对解析源不感兴趣。
答案 0 :(得分:1)
这些表是内部行存储表,因此您只能在_SYS_SS_TBL_[yyyyyyy]_RET
中找到SYS.RS_TABLES_
表。这将为您提供一些基本信息,包括列ID(CID
)。此值对于查找列信息非常重要。
例如,如果您的CID为100,您可以使用此查询在RS_COLUMNS_
表中找到列信息:
SELECT * FROM SYS.RS_COLUMNS_ WHERE CID = 100