是否可以在SAP HANA的词典视图中查找表值函数的返回列?

时间:2014-12-16 11:32:15

标签: sql sap hana

我在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 ...

有没有办法让我正式查看表值函数的返回列?显然,我对解析源不感兴趣。

1 个答案:

答案 0 :(得分:1)

这些表是内部行存储表,因此您只能在_SYS_SS_TBL_[yyyyyyy]_RET中找到SYS.RS_TABLES_表。这将为您提供一些基本信息,包括列ID(CID)。此值对于查找列信息非常重要。

例如,如果您的CID为100,您可以使用此查询在RS_COLUMNS_表中找到列信息:

SELECT * FROM SYS.RS_COLUMNS_ WHERE CID = 100