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="选择数据库的一张表" %>

希望这份记录也能让急需解决该问题的你获得灵感。

时间: 2024-10-10 07:35:44

CodeSmith无法获取Oracle表注释的相关文章

oracle表注释与查询提示(result_cache_mode)的关系

1.result_cache_mode比表注释优先使用的情况. create table test_Result_cache (id number) result_cache (mode default); mode default这个值仅移除任何已经设置的表注释,并不允许包含这张表的查询结果进行缓存. SQL> select t.table_name,t.result_cache from user_Tables t where t.table_name='TEST_RESULT_CACHE'

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

public ExtendedProperty[] GetExtendedProperties(string connectionString, SchemaObjectBase schemaObject) { List<ExtendedProperty> extendedProperties = new List<ExtendedProperty>(); if (schemaObject is ColumnSchema) { ColumnSchema columnSchema =

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

全部代码如下: public ExtendedProperty[] GetExtendedProperties(string connectionString, SchemaObjectBase schemaObject) { List<ExtendedProperty> extendedProperties = new List<ExtendedProperty>(); if (schemaObject is ColumnSchema) { ColumnSchema column

zabbix自动发现oracle表空间并监控其使用率

监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创建表空间时可以根据应用需求指定是否开启表空间自动扩展.那么在这里我们需要分析一个监控策略,就是当zabbix监控到某个表空间使用率达到95%,那么就让触发器触发警告(Warning)信息,并发送邮件给DBA或管理者.当检测到表空间没有开启自动扩展时,则触发Information信息.说明一下:ora

Oracle表中的注释生成相应的SqlServer更改语句

SELECT 'EXEC sys.sp_addextendedproperty @name=N'||chr(39) ||'MS_Description'||chr(39) ||', @value=N'||chr(39)||COMMENTS||chr(39)||', @level0type=N'||chr(39)||'SCHEMA'||chr(39)||',@level0name=N'||chr(39)||'dbo'||chr(39)||', @level1type=N'||chr(39)||'T

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

获取表: select table_name from user_tables; //当前用户拥有的表 select table_name from all_tables; //所有用户的表 select table_name from dba_tables; //包括系统表 select table_name from dba_tables where owner='用户名' user_tables: table_name,tablespace_name,last_analyzed等 dba_

oracle 建表后添加表注释及字段注释

oracle添加表注释和表字段注释 创建Oracle数据库表时候加上注释 CREATE TABLE t1(id  varchar2(32) primary key,name VARCHAR2(8) NOT NULL,age number,) 添加表注释:COMMENT ON table t1 IS '个人信息'; 添加字段注释:comment on column t1.id  is 'id';comment on column t1.nameis '姓名';comment on column t

oracle查看该用户的所有表名字、表注释、字段名、字段注释、是否为空、字段类型

--oracle查看该用户的所有表名字.表注释.字段名.字段注释.是否为空.字段类型 select distinct TABLE_COLUMN.*, TABLE_NALLABLE.DATA_TYPE, TABLE_NALLABLE.NULLABLE from (select distinct utc.table_name table_name, utc.comments table_comments, ucc.column_name column_name, ucc.comments colum

C#获取oracle数据库某表的列名和数据类型【转载】

C#获取oracle数据库某表的列名和数据类型的sql语句为: select column_name,data_type ,data_length,data_precision,data_scale from user_tab_columns [where table_name=表名] 关于此sql语句的说明: column_name:某表列名(varchar2(30)); data_type:某表列的数据类型(varchar2(106)); data_length:某表列的长度(number)