Oracle 给表关键字段批量添加索引生成脚本语句

Oracle 给表关键字段批量添加索引生成脚本语句:
-- 查看所有索引:

SELECT * FROM dba_indexes where OWNER = 'MCS';
-- 查看owner = MS
SELECT * FROM dba_indexes  WHERE owner = 'MS' AND index_type='NORMAL';
-- 查看索引大小
SELECT
    si.index_name,
    si.table_name,
    si.leaf_blocks * avg_row_len / 1024 / 1024 AS "Size_MB"
FROM
    dba_indexes si,
    (SELECT
         table_name,
         owner,
         AVG_ROW_LEN,
         num_rows
     FROM
         dba_tables
     WHERE
         owner = 'MCS') st
WHERE
    si.table_name = st.table_name
    AND si.owner = st.owner
    AND si.owner = 'MCS';
    
-- 查看用户表、索引、分区表占用空间
select owner,segment_type,segment_name, sum(bytes)/1024/1024 siez_Mb from dba_segments group by owner,segment_type,segment_name order by 4 desc;
    
-- 3.表占用空间
select segment_name, sum(bytes)/1024/1024 Mbytese from dba_segments where segment_type='TABLE' group by segment_name;

Oracle中,修改字段长度的脚本语句使用`ALTER TABLE`命令,具体语法取决于字段的数据类型。以下是常见场景的示例: ### 1. **修改VARCHAR2/CHAR字段的长度** ```sql -- 增加字段长度(VARCHAR2或CHAR) ALTER TABLE 名 MODIFY (字段名 VARCHAR2(新长度)); -- 示例:将employee的name字段从VARCHAR2(50)改为VARCHAR2(100) ALTER TABLE employee MODIFY (name VARCHAR2(100)); -- 如果是CHAR类型(固定长度) ALTER TABLE 名 MODIFY (字段名 CHAR(新长度)); ``` ### 2. **修改CLOB/BLOB等大对象字段** ```sql -- CLOB/BLOB通常不需要指定长度,但若需调整存储参数: ALTER TABLE 名 MODIFY (字段名 CLOB) PARAMETERS ('STORAGE (INITIAL 100K NEXT 100K)'); ``` ### 3. **修改NUMBER类型的精度/小数位** ```sql -- 增加NUMBER字段的总长度或小数位 ALTER TABLE 名 MODIFY (字段名 NUMBER(新精度, 新小数位)); -- 示例:将price字段从NUMBER(10,2)改为NUMBER(12,4) ALTER TABLE products MODIFY (price NUMBER(12,4)); ``` ### 4. **注意事项** 1. **数据截断风险**:缩小字段长度可能导致现有数据被截断,Oracle会报错(除非使用`FORCE`选项,但不推荐)。 2. **锁定**:修改操作会锁定,建议在低峰期执行。 3. **依赖对象**:如果字段被视图、约束等引用,可能需要先处理依赖关系。 ### 5. **完整示例** ```sql -- 1. 检查当前字段定义 SELECT column_name, data_type, data_length FROM user_tab_columns WHERE table_name = 'EMPLOYEE' AND column_name = 'NAME'; -- 2. 修改字段长度 ALTER TABLE employee MODIFY (name VARCHAR2(200)); -- 3. 验证修改结果 DESC employee; ``` ### 6. **特殊情况处理** - **字段有默认值**:需在修改时重新指定默认值(Oracle不会自动保留)。 - **字段索引中**:修改长度可能影响索引,需评估重建索引的必要性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值