我在 SAP HANA 中创建了一个表值函数:
CREATE FUNCTION f_tables
RETURNS TABLE (
column_value INTEGER
)
LANGUAGE SQLSCRIPT
AS
BEGIN
RETURN SELECT 1 column_value FROM SYS.DUMMY;
END
现在我希望能够使用字典 View 发现函数的表类型。我可以在这里运行这个查询:
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.TABLES
(和 TABLE_COLUMNS
)中查找 _SYS_SS_TBL_[yyyyyyy]_RET
表、SYS.VIEWS
(和 VIEW_COLUMNS
)、SYS.DATA_TYPES
等,以便找到各个列的定义。
请注意,使用 CREATE TYPE ...
创建的明确命名的表类型确实出现在 SYS.TABLES
...
有什么方法可以让我正式查找表值函数的返回列?显然,我对解析源代码不感兴趣。
最佳答案
这些表是内部行存储表,因此您只能在 SYS.RS_TABLES_
中找到您的 _SYS_SS_TBL_[yyyyyyy]_RET
表。这将为您提供一些基本信息,包括列 ID (CID
)。该值对于查找列信息很重要。
例如,如果您的 CID 是 100,您可以使用以下查询在 RS_COLUMNS_
表中查找列信息:
SELECT * FROM SYS.RS_COLUMNS_ WHERE CID = 100
关于sql - 是否可以在 SAP HANA 的字典 View 中查找表值函数的返回列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503648/