CodeSmith无法获取Oracle表注释

Posted 段江涛IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeSmith无法获取Oracle表注释相关的知识,希望对你有一定的参考价值。

如题:安装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表注释的主要内容,如果未能解决你的问题,请参考以下文章

解决CodeSmith无法获取MySQL表及列Description说明注释的方案

oracle 获取表注释和列注释

CodeSmith7.0.2连接Oracle10.2

Oracle18获取数据库当前用户下所有表名和表名的注释

Oracle数据库中查看所有表和字段以及表注释.字段注释

CodeSmith单表生成实体模板