这样一个存储过程:
creat or replace procedure PROC1(link varchar2)isinsert into table1@link select * from table2;end PROC1; 调用这个存储过程:ls_v varchar2(1);if ls_v ='s' then
PROC1(slink);
else if ls_v = 't' then
Proc1(tlink);
end if;这样做可以的么???
creat or replace procedure PROC1(link varchar2)isinsert into table1@link select * from table2;end PROC1; 调用这个存储过程:ls_v varchar2(1);if ls_v ='s' then
PROC1(slink);
else if ls_v = 't' then
Proc1(tlink);
end if;这样做可以的么???
execute immediate 'select * from a@' || db_link;
在你的存储过程理肯定要用动态语句。
在调用的时候。
ls_v varchar2(1);
begin
proc1(ls_v||'link');
end;
在你的存储过程理肯定要用动态语句。
在调用的时候。
ls_v varchar2(1);
begin
proc1(ls_v||'link');
end;
那还是避免不了要用动态sql,如果动态sql太长了怎么办?我的sql语句大致如下:insert into table1 (v1,v2,v3,....,v20)
select (a1,a2,...,a20)
from (select k1,case(很长的case)..k2,case..k3,....k20
from table2@db_lilnk);这样写下来很长有什么好的建议么???谢谢~~~
太长?
这种sql无论怎样,也都是这么长的.