2011-10-29 63 views
0

如何寫PL/SQL程序是:複製表附加列

  • 份數按名稱按名稱給到另一個給定表的表(不存在)
  • 增加了第二個表一個新列ts填充當前時間戳記/日期時間

回答

5

您需要使用動態SQL來實現此目的。

create or replace procedure clone_table 
    (p_copy_table in varchar2 
     , p_new_table in varchar2 
     , p_inc_data in varchar2 := 'Y') 
is 
    stmt varchar2(32767); 
begin 
    stmt := 'create table '|| p_new_table 
       || ' as select t.*, systimestamp as ts ' 
       || ' from ' || p_copy_table || ' t'; 
    if p_inc_data != 'Y' then 
     -- use a empty resultset to create an empty table 
     stmt := stmt || ' where 1=0'; 
    end if; 
    execute immediate stmt; 
end;