如何在 AS400 中使用 GetSchema 获取视图的 SQL

How to get the SQL of a View using GetSchema in AS400

我正在尝试使用 GetSchema 获取 SQL,但未检索到 View_Definition 列。

这是我检索视图信息的函数:

internal DataTable GetViewDefinition(AS400Library library, string viewName)
{
    var connection = ODBC.Instance.GetConnection(library);

    try
    {
        connection.Open();
        return connection.GetSchema("Views", new string[] { library.ToString(), null, viewName });
    }
    finally
    {
        connection.Close();
    }
}

GetViewDefinition 返回以下列而不是 view_definition:

  1. TABLE_CAT
  2. TABLE_SCHEM
  3. TABLE_NAME
  4. TABLE_TYPE
  5. 备注

如何获取 SQL 本身?

ODBC 和 ADO.NET 是通用接口,它们仅支持 "least common denominator" 功能,不了解特定于实现的细节。

您可以在 System i catalog viewsQSYS2.VIEWSINFORMATION_SCHEMA.VIEWS 中找到视图定义。检查您的版本手册,因为名称可能不同;我相信 INFORMATION_SCHEMA 仅在 6.1 之后才受支持。