sql - 是否可以在 SAP HANA 的字典 View 中查找表值函数的返回列?

标签 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

现在我希望能够使用字典 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.VIE​​WS(和 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/

相关文章:

.net - SQL Server 2012 Always on 和 .net 应用程序

c# - 如何停止脚本?

automated-tests - 如何获取 SAP 上下文菜单的功能代码?

hana - 如何获取HANA中最后执行的SQL语句?

redis - SAP HANA 与 Memcached、Redis 和现有数据库之间有何区别以使用内存而非磁盘?

从 SAP Hana 复制到 Data Lake Store 时,Azure Data Pipeline 复制事件丢失列名称

SQL Server UPDATE 与左连接?

MySQL选择最后一条记录并更新它

sap - Sybase ASE - 跟踪查询/进程

mysql - 在 InnoDB 中查找具有相似关键字的项目?