达梦表结构查询

select
    *
from
    (SELECT
             -- distinct
             CASE
             WHEN COL.COLID = 0 THEN
                 tab.Table_name
             ELSE
                 ''
         END                 表名, --main.COLUMN_NAME 主键名,
         tab.Table_name,
         tabcomment.COMMENT$ 表备注,
         col.colid           顺序号,
         case
             when main.COLUMN_NAME = col.name then
                 ''
             else
                 ''
         end                 是否主键,
         col.name            字段名称,
         coldesc.comments    字段备注,
         col.TYPE$           字段类型,
         LENGTH$             字段长度,
         col.scale           精度,
         case
             when nullable$ = 'N' then
                 ''
             else
                 ''
         end                 是否可空,
         defval              默认值,
         col.INFO1,
         col.INFO2 --chk.CONSTRAINT_NAME 主键约束名,
         --forignchk.CONSTRAINT_NAME 外键约束名
     FROM
         USER_TABLES tab
         JOIN sysobjects obj ON tab.TABLE_NAME = obj.NAME
         JOIN SYS.SYSCOLUMNS col ON col.ID = obj.id
         join user_col_comments coldesc on coldesc.TABLE_NAME = tab.TABLE_NAME --AND coldesc.OWNER = tab.OWNER
         and coldesc.COLUMN_NAME = COL.NAME
         left join SYSTABLECOMMENTS tabcomment on tabcomment.TVNAME = tab.Table_name
         left join DBA_CONSTRAINTS chk on chk.TABLE_NAME = tab.TABLE_NAME AND chk.CONSTRAINT_TYPE = 'P' -- AND chk.owner = tab.OWNER
         left join ALL_CONS_COLUMNS main on main.CONSTRAINT_NAME = chk.CONSTRAINT_NAME and chk.TABLE_NAME = tab.TABLE_NAME AND chk.CONSTRAINT_TYPE = 'P' -- AND main.owner = tab.OWNER
         --  left join DBA_CONSTRAINTS forignchk on forignchk.TABLE_NAME = tab.TABLE_NAME AND forignchk.CONSTRAINT_TYPE = 'R' AND forignchk.owner = tab.OWNER
         --left join ALL_CONS_COLUMNS forignmain on forignmain.CONSTRAINT_NAME = forignchk.CONSTRAINT_NAME and forignchk.TABLE_NAME = tab.TABLE_NAME AND forignchk.CONSTRAINT_TYPE = 'R' AND forignmain.owner = tab.OWNER
     WHERE
         1 = 1
     group by tab.Table_name,
         CASE
             WHEN COL.COLID = 0 THEN
                 tab.Table_name
             ELSE
                 ''
         END, --main.COLUMN_NAME 主键名,
         tabcomment.COMMENT$,
         col.colid,
         case
             when main.COLUMN_NAME = col.name then
                 ''
             else
                 ''
         end,
         col.name,
         coldesc.comments,
         col.TYPE$,
         LENGTH$,
         col.scale,
         case
             when nullable$ = 'N' then
                 ''
             else
                 ''
         end,
         defval,
         col.INFO1,
         col.INFO2) s
      --   where s."字段名称"<>'nodekey'
order by
    s.Table_name,
    s.顺序号 --and   tab.OWNER = 'WEBLAS_TYTY'
    --order by tab.Table_name,col.colid

 
    
View Code

 

查询表和字段:

SELECT
    CASE
        WHEN COL.COLID = 0 THEN
            tab.Table_name
        ELSE
            ''
    END 表名, --main.COLUMN_NAME 主键名,
    col.colid 顺序号,
    case
        when main.COLUMN_NAME = col.name then
            ''
        else
            ''
    end 是否主键,
    col.name 字段名称,
    coldesc.comments 字段备注,
    col.TYPE$ 字段类型,
    LENGTH$ 字段长度,
    col.scale 精度,
    case
        when nullable$ = 'N' then
            ''
        else
            ''
    end 是否可空,
    defval 默认值,
    col.INFO1,
    col.INFO2,
    chk.CONSTRAINT_NAME 主键约束名,
    forignchk.CONSTRAINT_NAME 外键约束名
FROM
    all_tables tab
    JOIN sysobjects obj ON tab.TABLE_NAME = obj.NAME
    JOIN SYS.SYSCOLUMNS col ON col.ID = obj.id
    join user_col_comments coldesc on coldesc.TABLE_NAME = tab.TABLE_NAME AND coldesc.OWNER = tab.OWNER and coldesc.COLUMN_NAME = COL.NAME
    left join DBA_CONSTRAINTS chk on chk.TABLE_NAME = tab.TABLE_NAME AND chk.CONSTRAINT_TYPE = 'P' AND chk.owner = tab.OWNER
    left join ALL_CONS_COLUMNS main on main.CONSTRAINT_NAME = chk.CONSTRAINT_NAME and chk.TABLE_NAME = tab.TABLE_NAME AND chk.CONSTRAINT_TYPE = 'P' AND main.owner = tab.OWNER
    left join DBA_CONSTRAINTS forignchk on forignchk.TABLE_NAME = tab.TABLE_NAME AND forignchk.CONSTRAINT_TYPE = 'R' AND forignchk.owner = tab.OWNER
    left join ALL_CONS_COLUMNS forignmain on forignmain.CONSTRAINT_NAME = forignchk.CONSTRAINT_NAME and forignchk.TABLE_NAME = tab.TABLE_NAME AND forignchk.CONSTRAINT_TYPE = 'R' AND forignmain.owner = tab.OWNER
WHERE
    tab.OWNER = 'WEBLAS_TYTY';

 

其他:

select
    *
from
    V$LICENSE;
select
    arch_mode
from
    v$database;
--查看当前数据库是否开启归档
SELECT
    SF_GET_CASE_SENSITIVE_FLAG();
--获得大小写敏感信息
SELECT
    SF_GET_EXTENT_SIZE();
--获得系统建库时指定的簇大小
SELECT
    PAGE();
--获得系统建库时指定的页大小
SELECT
    SF_GET_UNICODE_FLAG();
--获得系统建库时指定字符集
select
    *
from
    v$version;
--显示版本信息,包括服务器版本号与DB版本号 DMDSC版本号
select
    *
from
    v$database;
select
    *
from
    v$instance;
SELECT
    SF_CHECK_SYSTEM_PACKAGES;
--获得系统包的启用状态。0:未启用;1:已启用 由是否执行过
SELECT
    *
from
    ARRAY DBMS_SPACE.TS_ALL_GET();
--获取所有表空间的id
SELECT
    *
FROM
    ARRAY DBMS_SPACE.TS_GET( 5);
--获取某一个表空间信息(表空间 ID、表空间名、表空间类型:1 DB 类型,2 临时文件组、表空间状态、表空间的最大空间、表空间的总大小(页)、包含文件的个数)
select
    DBMS_SPACE.TS_N_GET;
--获得数据库中表空间的个数
SELECT
    NAME,
    FIRST_TIME,
    NEXT_TIME,
    FIRST_CHANGE#,
    NEXT_CHANGE#
FROM
    V$ARCHIVED_LOG;
--查询有哪些归档日志
ALTER DATABASE MOUNT;
--修改数据库为 MOUNT 状态
ALTER DATABASE ADD ARCHIVELOG 'DEST = E:\dmdbms\data\DAMENG3\arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048';
--配置本地归档
ALTER DATABASE ARCHIVELOG;
--开启归档模式
ALTER DATABASE OPEN;
--修改数据库为 OPEN 状态
SELECT
    TRX_ID,
    LTYPE,
    LMODE,
    TABLE_ID
FROM
    V$LOCK;
--查询系统中上锁的事务、锁类型,以及表 ID 信息。
SELECT
    SESS_ID,
    TOP_SQL_TEXT,
    TIME_USED
FROM
    V$SQL_HISTORY;
--查询系统执行的 SQL 历史信息。 以前执行过哪些sql
SELECT
    *
FROM
    V$DICT_CACHE;
--查看字典缓存的信息。
SELECT
    SESS_ID,
    SQL_TEXT,
    STATE,
    CREATE_TIME,
    CLNT_HOST
FROM
    V$SESSIONS;
--查看会话信息
SELECT
    *
FROM
    V$LONG_EXEC_SQLS;
--显示最近 1000 条执行时间较长的 SQL 语句
SELECT
    *
FROM
    V$SYSTEM_LONG_EXEC_SQLS;
--显示服务器启动以来执行时间最长的20条SQL语句
select
    *
from
    DBA_INDEXES;
--查索引信息,包括表名和模式等信息
View Code

 

posted on 2025-01-14 13:57  RookieBoy666  阅读(646)  评论(1)    收藏  举报