標籤:
如題:安裝CodeSmith5.2版本,SQLServer沒有任何問題,而Oracle就只能擷取列的注釋而不能擷取表的注釋,經過多方面尋找資料後找到了一個最重要的解決方案,Sql語句,如下:
select * from user_tab_comments
這句Sql語句的作用就是查詢系統中所有表的注釋,而我們只需要加入條件就可以查詢到注釋,代碼如下:
//獲得表的注釋,Oracle專用public string GetTableDescription(){ string result=""; using (OracleConnection conn = new OracleConnection(this.SourceTable.Database.ConnectionString)) { OracleCommand comm = new OracleCommand("select Comments from user_tab_comments where table_name=‘"+this.SourceTable.Name+"‘", conn); conn.Open(); result =Convert.ToString(comm.ExecuteScalar()); comm.Dispose(); conn.Close(); } return result;}
當然,如果直接這樣CodeSmith會報錯,然後我們需要在頭部引用程式集和命名空間如下:
<%--下面是引用程式集 --%><%@ Assembly Name="System.Data.OracleClient" %><%--下面是引用命名空間 --%><%@ Import Namespace="System.Data.OracleClient" %>
走到這裡就可以通過GetTableDescription()方法獲得注釋了。
注:SourceTable表示頭部定義的表變數,如下:
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" Category="Context" Description="選擇資料庫的一張表" %>
希望這份記錄也能讓急需解決該問題的你獲得靈感。
CodeSmith無法擷取Oracle表注釋