1

我们有一组 45 个表,它们带有一个公共列 { variety}。需要为所有此类列设置默认值 { comedy}。

ALTER TABLE (SCHEMA.TABLE_NAME) MODIFY(VARIETY DEFAULT 'COMEDY')

会完成它,但我想知道是否有一种方法可以在 Oracle 11g 中创建一个 sql 脚本,它将模式中具有通用列名称的所有表更改为通用默认值。

4

2 回答 2

2
DECLARE
    cnt NUMBER;
BEGIN
    FOR x IN (
        SELECT DISTINCT t.table_name 
        FROM user_tables t
            INNER JOIN user_tab_columns c ON c.table_name = t.table_name
    ) LOOP
        EXECUTE IMMEDIATE 'ALTER TABLE (SCHEMA.' || x.table_name || ') MODIFY(VARIETY DEFAULT ''COMEDY'')';
    END LOOP;
END;
于 2013-03-09T18:59:30.567 回答
0

使用交替引用机制,alter table 语句可以编写如下。

'alter table ' || x.table_name || q'[ modify (variety default 'COMEDY')]'
于 2019-05-26T06:45:08.950 回答