DECLARE
v_col_exists NUMBER;
create_time varchar2(20) := 'CREATE_TIME';
update_time varchar2(20) := 'UPDATE_TIME';
create_user varchar2(20) := 'CREATE_USER';
update_user varchar2(20) := 'UPDATE_USER';
v_sql varchar2(4000);
begin
for i in (select table_name from user_tables where TABLE_NAME like 'G_YAF_%')
loop
SELECT count(*)
INTO v_col_exists
FROM user_tab_cols
WHERE column_name = create_time AND table_name = i.table_name;
IF (v_col_exists = 0) THEN
v_sql := 'alter table ' || i.table_name || ' add ' || create_time || ' date';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute immediate v_sql;
v_sql := 'comment on column ' || i.table_name || '.' || create_time || ' is ' || q'['创建时间']';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute immediate v_sql;
ELSE
DBMS_OUTPUT.PUT_LINE('The column effective_date already exists');
END IF;
SELECT count(*)
INTO v_col_exists
FROM user_tab_cols
WHERE column_name = update_time AND table_name = i.table_name;
IF (v_col_exists = 0) THEN
v_sql := 'alter table ' || i.table_name || ' add ' || update_time || ' date';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute immediate v_sql;
execute immediate 'comment on column ' || i.table_name || '.' || update_time || ' is ' || q'['更新时间']';
ELSE
DBMS_OUTPUT.PUT_LINE('The column effective_date already exists');
END IF;
SELECT count(*)
INTO v_col_exists
FROM user_tab_cols
WHERE column_name = create_user AND table_name = i.table_name;
IF (v_col_exists = 0) THEN
v_sql := 'alter table ' || i.table_name || ' add ' || create_user || ' number(8)';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute immediate v_sql;
execute immediate 'comment on column ' || i.table_name || '.' || create_user || ' is ' || q'['创建人ID']';
ELSE
DBMS_OUTPUT.PUT_LINE('The column effective_date already exists');
END IF;
SELECT count(*)
INTO v_col_exists
FROM user_tab_cols
WHERE column_name = update_user AND table_name = i.table_name;
IF (v_col_exists = 0) THEN
v_sql := 'alter table ' || i.table_name || ' add ' || update_user || ' number(8)';
DBMS_OUTPUT.PUT_LINE(v_sql);
execute immediate v_sql;
execute immediate 'comment on column ' || i.table_name || '.' || update_user || ' is ' || q'['更新人ID']';
ELSE
DBMS_OUTPUT.PUT_LINE('The column effective_date already exists');
END IF;
end loop;
end;