<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>COLUMN &#8211; 良的世界</title>
	<atom:link href="https://www.lemonary.cn/tag/column/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.lemonary.cn</link>
	<description></description>
	<lastBuildDate>Tue, 07 Jan 2025 01:38:15 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.lemonary.cn/wp-content/uploads/2024/12/profile-150x150.jpg</url>
	<title>COLUMN &#8211; 良的世界</title>
	<link>https://www.lemonary.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>达梦数据库查询表字段信息</title>
		<link>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9f%a5%e8%af%a2%e8%a1%a8%e5%ad%97%e6%ae%b5%e4%bf%a1%e6%81%af/</link>
					<comments>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9f%a5%e8%af%a2%e8%a1%a8%e5%ad%97%e6%ae%b5%e4%bf%a1%e6%81%af/#respond</comments>
		
		<dc:creator><![CDATA[shine]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 03:22:43 +0000</pubDate>
				<category><![CDATA[DM]]></category>
		<category><![CDATA[COLUMN]]></category>
		<category><![CDATA[INDEX]]></category>
		<category><![CDATA[TABLE]]></category>
		<category><![CDATA[TABLESPACE]]></category>
		<guid isPermaLink="false">https://www.lemonary.cn/?p=1232</guid>

					<description><![CDATA[最全的表字段信息查询 另： 查询表中某一列的最大值和最小值]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">最全的表字段信息查询</p>



<pre class="wp-block-code"><code>SELECT 
DT.OWNER 用户名,
DT.TABLE_NAME 表名,
DT.TABLE_COMMENTS 表注释,
DT.TABLESPACE_NAME 所属表空间,
DT.TABLE_PK 表主键,
DTC.COLUMN_NAME 字段名,
CASE 
WHEN DTC.DATA_PRECISION IS NOT NULL AND DTC.DATA_SCALE IS NOT NULL THEN DTC.DATA_TYPE||'('||DTC.DATA_PRECISION||','||DTC.DATA_SCALE||')'
WHEN DTC.DATA_TYPE LIKE '%TIME%' THEN DTC.DATA_TYPE||'('||DTC.DATA_SCALE||')'
WHEN DATA_TYPE LIKE '%INT%' OR DATA_TYPE IN ('BIT','BLOB','CLOB','TEXT','DATE','IMAGE','LONGVARCHAR') THEN DATA_TYPE
ELSE DTC.DATA_TYPE||'('||DTC.DATA_LENGTH||')'
END 字段类型,
CC.COMMENTS 字段注释,
CASE WHEN DIC.COLUMN_NAME IS NULL THEN '否' ELSE '是' END 是否有索引,
CASE WHEN DTC.NULLABLE='N' THEN '否' ELSE '是' END 是否可为空,
DTC.DATA_DEFAULT 默认值
FROM(
SELECT 
DT.OWNER OWNER,
DT.TABLE_NAME TABLE_NAME,
TC.COMMENTS TABLE_COMMENTS,
DT.TABLESPACE_NAME TABLESPACE_NAME,
LISTAGG(DCC.COLUMN_NAME,',') WITHIN GROUP (ORDER BY POSITION) TABLE_PK
FROM DBA_TABLES DT
LEFT JOIN DBA_TAB_COMMENTS TC ON DT.OWNER=TC.OWNER AND DT.TABLE_NAME=TC.TABLE_NAME
LEFT JOIN DBA_CONSTRAINTS DC ON DT.OWNER=DC.OWNER AND DT.TABLE_NAME=DC.TABLE_NAME AND DC.CONSTRAINT_TYPE='P'
LEFT JOIN DBA_CONS_COLUMNS DCC ON DC.CONSTRAINT_NAME=DCC.CONSTRAINT_NAME
WHERE DT.OWNER='用户名' 
GROUP BY DT.OWNER,DT.TABLE_NAME,TC.COMMENTS,DT.TABLESPACE_NAME
)DT
LEFT JOIN DBA_TAB_COLUMNS DTC ON DT.OWNER=DTC.OWNER AND DT.TABLE_NAME=DTC.TABLE_NAME
LEFT JOIN DBA_COL_COMMENTS CC ON DTC.OWNER=CC.OWNER AND DTC.TABLE_NAME=CC.TABLE_NAME AND DTC.COLUMN_NAME=CC.COLUMN_NAME
LEFT JOIN (SELECT DISTINCT INDEX_OWNER,TABLE_OWNER,TABLE_NAME,COLUMN_NAME FROM DBA_IND_COLUMNS)DIC 
ON DTC.OWNER=DIC.TABLE_OWNER AND DTC.TABLE_NAME=DIC.TABLE_NAME AND DTC.COLUMN_NAME=DIC.COLUMN_NAME
ORDER BY DT.OWNER,DT.TABLE_NAME;</code></pre>



<p class="wp-block-paragraph">另：</p>



<p class="wp-block-paragraph">查询表中某一列的最大值和最小值</p>



<pre class="wp-block-code"><code>SELECT
    USR.NAME AS OWNER_NAME,
    SCH.NAME AS SCHEMA_NAME,
    TAB.NAME AS TABLE_NAME,
    COL.NAME AS COLUMN_NAME,
    COL.TYPE$ AS COLUMN_TYPE,
    COL.COLID AS COLUMN_ID,
    CASE COL.TYPE$
        WHEN 'NUMBER' THEN
            ROUND(CAST(SF_BIN_GET_DOUBLE(S.V_MIN, 0) AS NUMBER), COL.SCALE)
        WHEN 'INT' THEN
            SF_BIN_GET_INT(S.V_MIN, 0)
        WHEN 'INTEGER' THEN
            SF_BIN_GET_INT(S.V_MIN, 0)
        WHEN 'BIGINT' THEN
            SF_BIN_GET_BIGINT(S.V_MIN, 0)
        WHEN 'SMALLINT' THEN
            SF_BIN_GET_SMALLINT(S.V_MIN, 0)
        WHEN 'TINYINT' THEN
            SF_BIN_GET_TINYINT(S.V_MIN, 0)
        WHEN 'CHAR' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'NCHAR' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'NVARCHAR' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'NVARCHAR2' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'VARCHAR2' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'VARCHAR' THEN
            BINTOCHAR2(S.V_MIN)
        WHEN 'VARBINARY' THEN
            NVL2(S.V_MIN, '0X' || RAWTOHEX(SUBSTRBLB(S.V_MIN, 5, SF_BIN_GET_INT(S.V_MIN, 0))), NULL)
        WHEN 'DATE' THEN
            TO_CHAR(BINTODATE(S.V_MIN), 'YYYY-MM-DD')
        WHEN 'DATETIME' THEN
            TO_CHAR(BINTODATE(S.V_MIN), 'YYYY-MM-DD HH24:MI:SS')
        WHEN 'DATETIME WITH TIME ZONE' THEN
            TO_CHAR(BINTODATE(S.V_MIN), 'YYYY-MM-DD HH24:MI:SS TZH:TZM')
        WHEN 'TIMESTAMP' THEN
            TO_CHAR(BINTODATE(S.V_MIN), 'YYYY-MM-DD HH24:MI:SS.FF6')
        ELSE
            RAWTOHEX(S.V_MIN)
    END AS VALUE_MIN,
    CASE COL.TYPE$
        WHEN 'NUMBER' THEN
            ROUND(CAST(SF_BIN_GET_DOUBLE(S.V_MAX, 0) AS NUMBER), COL.SCALE)
        WHEN 'INT' THEN
            SF_BIN_GET_INT(S.V_MAX, 0)
        WHEN 'INTEGER' THEN
            SF_BIN_GET_INT(S.V_MAX, 0)
        WHEN 'BIGINT' THEN
            SF_BIN_GET_BIGINT(S.V_MAX, 0)
        WHEN 'SMALLINT' THEN
            SF_BIN_GET_SMALLINT(S.V_MAX, 0)
        WHEN 'TINYINT' THEN
            SF_BIN_GET_TINYINT(S.V_MAX, 0)
        WHEN 'CHAR' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'NCHAR' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'NVARCHAR' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'NVARCHAR2' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'VARCHAR2' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'VARCHAR' THEN
            BINTOCHAR2(S.V_MAX)
        WHEN 'VARBINARY' THEN
            NVL2(S.V_MAX, '0X' || RAWTOHEX(SUBSTRBLB(S.V_MAX, 5, SF_BIN_GET_INT(S.V_MAX, 0))), NULL)
        WHEN 'DATE' THEN
            TO_CHAR(BINTODATE(S.V_MAX), 'YYYY-MM-DD')
        WHEN 'DATETIME' THEN
            TO_CHAR(BINTODATE(S.V_MAX), 'YYYY-MM-DD HH24:MI:SS')
        WHEN 'DATETIME WITH TIME ZONE' THEN
            TO_CHAR(BINTODATE(S.V_MAX), 'YYYY-MM-DD HH24:MI:SS TZH:TZM')
        WHEN 'TIMESTAMP' THEN
            TO_CHAR(BINTODATE(S.V_MAX), 'YYYY-MM-DD HH24:MI:SS.FF6')
        ELSE
            RAWTOHEX(S.V_MAX)
    END AS VALUE_MAX,
    S.T_TOTAL,
    S.N_SAMPLE,
    S.N_DISTINCT,
    S.N_NULL,
    S.COL_AVG_LEN,
    S.LAST_GATHERED,
    S.DATA
FROM
    SYSSTATS S,
    SYSOBJECTS TAB,
    SYSCOLUMNS COL,
    SYSOBJECTS SCH,
    SYSOBJECTS USR
WHERE
    S.ID = TAB.ID
    AND S.T_FLAG = 'C'
    AND COL.ID = S.ID
    AND COL.COLID = S.COLID
    AND SCH.ID = TAB.SCHID
    AND SCH.TYPE$ = 'SCH'
    AND TAB.TYPE$ = 'SCHOBJ'
    AND TAB.SUBTYPE$ IN ('UTAB', 'STAB')
    AND USR.TYPE$ = 'UR'
    AND USR.ID = SCH.PID
    AND SCH.NAME = 'SCHNAME'
    AND TAB.NAME = 'TABNAME'
    AND COL.NAME = 'COLNAME'
ORDER BY
    1,2,3,6;</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://www.lemonary.cn/%e8%be%be%e6%a2%a6%e6%95%b0%e6%8d%ae%e5%ba%93%e6%9f%a5%e8%af%a2%e8%a1%a8%e5%ad%97%e6%ae%b5%e4%bf%a1%e6%81%af/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
