表1:
create table table1(n number);
表2:
creaet table table2(n number);
过程:
create or replace procedure myPro is
begin
insert into table1(n)
select n from table2;
commit;
end myPro;
现在
alter table table1 add newclounm number;
alter table table2 add newclounm number;
如何重构我的程序?
我没有使用insert into table1 select * from table2;
我尝试table1%rowtype,但返回错误;
答案 0 :(得分:0)
您好试试这段代码
python2.7
如果您的数据量很高,则需要使用limit子句......
答案 1 :(得分:0)
在我的脑海中,我可以认为它可以通过帮助轻松完成 使用ALL_TAB_COLUMNS表的动态SQL。但这个设计不在 所有推荐。我假设了 两个表中的列名相同。希望在片段下方有所帮助。
CREATE OR REPLACE PROCEDURE myPro
IS
lv_cols LONG;
BEGIN
SELECT WMSYS.WM_CONCAT(COLUMN_NAME)
INTO lv_cols
FROM ALL_TAB_COLUMNS
WHERE OWNER = 'SCHEMA_NAME'
AND TABLE_NAME = 'TABLE1'
GROUP BY TABLE_NAME;
EXECUTE IMMEDIATE 'INSERT INTO TABLE1('||lv_cols||')'|| 'SELECT '||lv_cols||' FROM TABLE2';
COMMIT;
END ;