运维工程师常用的经典语句——1.获取Oracle、DB2、SQLSERVER、Mysql数据库所有字段以及字段类型等信息

9 篇文章 0 订阅
5 篇文章 0 订阅
  1. Oracle
SELECT 'CRM' AS SRC_CODE,    -- 系统标识	自己定
       A.OWNER,
       A.TABLE_NAME AS TABLE_NAME,    
       A.COLUMN_NAME AS COL_NAME,
       D.COMMENTS AS COL_DESC,
       A.column_id AS COL_ID,
       A.data_type AS COL_DATA_TYPE,
       CASE WHEN data_type LIKE '%NUMBER%' THEN COALESCE(data_precision, 38)
            ELSE data_length END AS COL_DATA_LENGTH,
       CASE WHEN data_type LIKE '%NUMBER%' THEN COALESCE(data_scale, 10)
            ELSE data_scale END AS COL_DATA_SCALE,
       to_char(sysdate,'yyyy-mm-dd') as DATA_DT_SRC      
FROM all_tab_columns A
LEFT JOIN ALL_COL_COMMENTS D
ON A.OWNER=D.OWNER AND A.TABLE_NAME=D.TABLE_NAME AND A.COLUMN_NAME=D.COLUMN_NAME
WHERE A.OWNER IN ('crm')    -- 用户名	自己定
order by A.OWNER ,A.TABLE_NAME,A.column_id
  1. SqlServer
SELECT 
'CRM' AS SRC_SYS						-- 系统名	自己定
,'crm' AS SRC_OWNER					-- 用户名 	自己定
,A.name AS TABLE_NAME 
,B.name AS COL_NAME
,cast(ETP.value as varchar(500)) as COL_DESC
,B.colid AS COL_ID
,t.name as COL_DATA_TYPE
,COLUMNPROPERTY(B.id,B.name,'PRECISION') AS COL_DATA_LENGTH
,isnull(COLUMNPROPERTY(B.id,B.name,'Scale'),0) AS COL_DATA_SCALE
,convert(char(10),getdate(),120) AS DATA_DT_SRC
from  SysObjects A
LEFT JOIN syscolumns B 
ON A.id=B.id
LEFT JOIN  systypes t 
on B.xusertype = t.xusertype 
LEFT JOIN sys.extended_properties ETP 
    ON ETP.major_id = B.id AND ETP.minor_id = B.colid AND ETP.name ='MS_Description'
and B.id=ETP.major_id
WHERE A.xtype='U'
  1. DB2
SELECT
 'CRM' AS SRC_SYS					-- 系统名	自己定
 ,'crm' AS SRC_OWNER			-- 用户名	自己定
 ,A.TBNAME AS TABLE_NAME
 ,A.NAME AS COL_NAME
 ,A.REMARKS AS COL_DESC
 ,A.COLNO
 ,A.COLTYPE
 ,A.LENGTH
 ,A.SCALE
 ,char(current date,iso)
FROM SYSIBM.SYSCOLUMNS A
WHERE TBCREATOR = 'CRM'  -- 用户名 自己定
AND TYPENAME NOT LIKE '%LOB'
ORDER BY TBNAME,COLNO
  1. Mysql
SELECT 
'CRM' AS SRC_CODE,  --  系统名 自己定
A.TABLE_SCHEMA AS OWNER,
A.TABLE_NAME AS TABLE_NAME,
D.COLUMN_NAME AS COL_NAME,
D.COLUMN_COMMENT AS COL_DESC,
D.ORDINAL_POSITION AS COL_ID,
D.DATA_TYPE AS COL_DATA_TYPE,
D.CHARACTER_MAXIMUM_LENGTH AS COL_DATA_LENGTH,
D.NUMERIC_SCALE AS COL_DATA_SCALE,
date_format(now(), '%Y-%m-%d') AS DATA_DT_SRC
FROM information_schema.TABLES A
LEFT JOIN information_schema.COLUMNS D
ON A.TABLE_NAME = D.TABLE_NAME 
AND A.TABLE_SCHEMA = D.TABLE_SCHEMA
WHERE A.TABLE_SCHEMA = 'CRM'		-- 自己定
ORDER BY A.TABLE_SCHEMA,A.TABLE_NAME
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值