Oracle中常用的系统表
1、如何快速修改用户中涉及多个表中某个字段类型
1)方法一:
SELECT 'alter table '||TABLE_NAME||' modify '||COLUMN_NAME||' VARCHAR2('||DATA_LENGTH||');' --要alter的sql ,T.* FROM dba_tab_cols T WHERE OWNER = '所属库的用户' AND DATA_TYPE='字段类型' and COLUMN_NAME IN ('字段');
2)方法二:
BEGIN FOR r IN ( select TABLE_NAME from user_tables WHERE OWNER = '所属库的用户' AND DATA_TYPE='字段类型' and COLUMN_NAME IN ('字段') ) LOOP execute immediate 'alter table '||r.TABLE_NAME||' modify '||r.COLUMN_NAME||' VARCHAR2('||r.DATA_LENGTH||')'; END LOOP; END;
2、系统表
序号 | 表名 | 说明 |
1 |
SELECT * FROM USER_USERS; SELECT * FROM ALL_USERS; |
用户表,可以查询对应的用户信息 |
2 |
SELECT * FROM USER_TABLES; SELECT * FROM USER_ALL_TABLES; SELECT * FROM USER_TAB_COMMENTS; |
数据表,可以查询表名,表空间,表类型 |
3 |
SELECT * FROM USER_TABLESPACES; SELECT * FROM DBA_TABLESPACES; |
表空间 |
4 |
SELECT * FROM USER_TAB_COLUMNS; SELECT * FROM USER_TAB_COLS; SELECT * FROM USER_COL_COMMENTS; |
表结构,可以查询表列详细信息 |
5 |
SELECT * FROM USER_CONS_COLUMNS; SELECT * FROM USER_CONS_COLUMNS; |
约束 |
6 |
SELECT * FROM USER_INDEXES; SELECT * FROM USER_IND_COLUMNS; |
索引 |
7 |
SELECT * FROM USER_VIEWS; SELECT * FROM USER_MVIEWS; |
视图 |
8 |
SELECT * FROM USER_PROCEDURES; SELECT * FROM USER_STORED_SETTINGS; |
存储过程、存储函数 SELECT OBJECT_NAME AS "对象名[过程名|方法名]" SELECT OBJECT_NAME AS "对象名[过程名|方法名]" |
9 |
SELECT * FROM USER_TRIGGERS; SELECT * FROM USER_TRIGGER_COLS; SELECT * FROM USER_TRIGGER_ORDERING; |
触发器
SELECT TRIGGER_NAME AS "触发器名"
|
分类:
Oracle
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤