WeihanLi/DbTool

可以支持Oracle不

crashsol opened this issue · 2 comments

可以支持Oracle不

目前不支持,没用过 Oracle,对 Oracle 不熟。不过应该可以类似地实现一个 Oracle 的扩展 ,可以参考 SqlServer 的实现:https://github.com/WeihanLi/DbTool.Packages/blob/main/src/DbTool.SqlServer/SqlServerDbProvider.cs

DbDriver: https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/

Oracle database in docker: https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md

Oracle data types mapping: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/oracle-data-type-mappings

查询数据库表脚本:

select t.table_name, t.comments from user_col_comments t order by t.table_name
SELECT 
     --t1.Table_Name || chr(13) || t3.comments       AS "表名称及说明",
       t1.Column_Name                                AS "字段名称",
       t1.DATA_TYPE                                  AS "数据类型",
       t1.DATA_LENGTH                                AS "长度",
       t1.NullAble                                   AS "是否为空",
       t2.Comments                                   AS "字段说明",
       t1.Data_Default                               AS "默认值"
       --t4.created                                  AS "建表时间"
       --t3.comments                                 AS "表说明",
  FROM cols t1
  LEFT JOIN user_col_comments t2 
         ON t1.Table_name = t2.Table_name
        AND t1.Column_Name = t2.Column_Name
  LEFT JOIN user_tab_comments t3 
         ON t1.Table_name = t3.Table_name
  LEFT JOIN user_objects t4 
         ON t1.table_name = t4.OBJECT_NAME
  WHERE NOT EXISTS (SELECT t4.Object_Name
          FROM User_objects t4
         WHERE t4.Object_Type = 'TABLE'
           AND t4.Temporary = 'Y'
           AND t4.Object_Name = t1.Table_Name)
               --and t1.TABLE_NAME='你要查询的表名'
  ORDER BY t1.Table_Name, t1.Column_ID