create or replace procedure a_procedure(
v_table_name varchar2
)
is
a_1 number;
v_str varchar2(30);
begin
select count(*) into a_1 from user_tab_columns where table_name=v_table_name;
if a_1=1 then
v_str:='drop table '||v_table_name||';';
execute immediate v_str;
else
v_str:='create table v_table_name_01 as select * from '||v_table_name;
execute immediate v_str;
v_str:='truncate table '||v_table_name;
execute immediate v_str;
v_str:='insert into '||v_table_name||'(select * from v_table_name_01)';
execute immediate v_str;
end if;
end a_procedure;我写了这个存储过程也编译通过
但我怎们调用这存储过程呢?
我用
declare
begin
execute a_procedure('EMP');
end;
这个方法不行~~请各位大虾告诉我谢谢了
v_table_name varchar2
)
is
a_1 number;
v_str varchar2(30);
begin
select count(*) into a_1 from user_tab_columns where table_name=v_table_name;
if a_1=1 then
v_str:='drop table '||v_table_name||';';
execute immediate v_str;
else
v_str:='create table v_table_name_01 as select * from '||v_table_name;
execute immediate v_str;
v_str:='truncate table '||v_table_name;
execute immediate v_str;
v_str:='insert into '||v_table_name||'(select * from v_table_name_01)';
execute immediate v_str;
end if;
end a_procedure;我写了这个存储过程也编译通过
但我怎们调用这存储过程呢?
我用
declare
begin
execute a_procedure('EMP');
end;
这个方法不行~~请各位大虾告诉我谢谢了
begin
a_procedure('EMP');
end;
declare
begin
a_procedure('EMP');
end;
begin
a_procedure('EMP');
end;
/