首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Oracle 查詢表創建時間與創建者:USER_OBJECTS 視圖一條 SQL 搞定

     編輯:程式設計綜合問答

標準查詢 SQL

SELECT 
    OBJECT_NAME  AS 表名,
    CREATED      AS 創建時間,
    STATUS       AS 狀態
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
  AND OBJECT_NAME = 'YOUR_TABLE_NAME';  -- 表名必須大寫

關鍵點解析

  • USER_OBJECTS:當前用戶擁有的所有對象(表、視圖、索引、序列、包等)。
  • OBJECT_TYPE = 'TABLE':過濾僅保留表對象。
  • 表名大寫:Oracle 默認將非加引號標識符轉為大寫存儲,查詢時需用大寫,否則無結果。
  • CREATED:DATE 類型,精確到秒,為對象創建時間。

進階:查詢所有用戶的表(需 DBA 權限)

SELECT OWNER, OBJECT_NAME, CREATED, LAST_DDL_TIME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
  AND OBJECT_NAME = 'YOUR_TABLE_NAME';
  • OWNER:表擁有者(Schema),即創建者。
  • LAST_DDL_TIME:最後一次 DDL 操作時間(如 ALTER TABLE),可判斷結構變更歷史。

補充:獲取表空間、存儲參數等元數據

SELECT 
    t.TABLE_NAME,
    t.TABLESPACE_NAME,
    t.CREATED,
    u.USERNAME AS OWNER
FROM USER_TABLES t
JOIN USER_USERS u ON 1=1
WHERE t.TABLE_NAME = 'YOUR_TABLE_NAME';

常見誤區

誤區正確認知
用 USER_TABLES 查創建時間USER_TABLES 無 CREATED 列,必須用 USER_OBJECTS 或 ALL_OBJECTS
表名用小寫/混合大小寫查詢Oracle 非加引號標識符統一轉大寫存儲,查詢必須大寫
以為 CREATED 是索引創建時間USER_OBJECTS 每行對應一個對象,表與索引是不同行,各有各的 CREATED

總結

一條標準 SQL:SELECT CREATED FROM USER_OBJECTS WHERE OBJECT_NAME='TABLE_NAME' AND OBJECT_TYPE='TABLE'。注意表名大寫,若需創建者請查 ALL_OBJECTS.OWNER(需權限)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved