2016-06-19 4 views
0

GetSchemaを使用してSQLを取得しようとしていますが、View_Definition列は取得されません。AS400でGetSchemaを使用してビューのSQLを取得する方法

  1. TABLE_CAT
  2. TABLE_SCHEM
  3. TABLE_NAME
  4. :次の列ではなく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

    この

    は、ビュー情報を取得するために私の関数でありますTABLE_TYPE
  5. 備考

SQL自体はどのように入手できますか?

+1

何の 'GetSchema'を使うことで?つまり、どのような正確なドライバを使用していますか?そしてあなたの "AS400"にはどのOSバージョンがありますか? – user2338816

+1

[ドキュメント](https://msdn.microsoft.com/en-us/library/cc668760(v=vs.110).aspx)で、 'GetSchema()'が "view_definition"を返すと思われる場合は、 ? – mustaccio

+0

@mustaccio私はそれも疑問に思っていましたが、DB2 for iドライバーがGetSchema()を提供しているのか、DB2 UDBドライバーが代わりに使用されているのかは明確ではありませんでした(明らかに "view_definition" PTFedまたは何か)。どのドキュメンテーションでも見つけられませんでした。 – user2338816

答えて

0

ODBCとADO.NETは汎用インターフェイスであり、機能の「最小共通点」のみをサポートしており、実装固有の詳細は認識していません。

ビュー定義は、System i catalog viewsQSYS2.VIEWSまたはINFORMATION_SCHEMA.VIEWSにあります。名前が異なる可能性があるため、マニュアルのバージョンを確認してください。 INFORMATION_SCHEMAは6.1以降のみサポートされていると私は信じている。

+0

リンクはVIEW_DEFINITIONの検索に役立ちました。https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzcatsysviews.htm – ehh

関連する問題