通过DataBase Link(DBLink在pl/sql中很容易建,这就不介绍了)执行远程数据库的操作用到了两种方法:
一是直接在中间库执行sql语句,如“SELECT * FROM
qa_results@LINKERP”;
二是调用远程数据库种的通用存储过程执行slq语句,如“STR:= ‘DROP TABLE qa_results’; C8ExecuteDDL@LINKERP(STR);”。
通用存储过程C8ExecuteDDL的代码如下:
create
or replace procedure C8ExecuteDDL(sqlstr in varchar2) authid current_user as
begin
execute immediate sqlstr;
end C8ExecuteDDL;
begin
execute immediate sqlstr;
end C8ExecuteDDL;
由于数据库通过远程不能执行DDL操作,只能执行DML操作,因此,select语句的sql通过第一种方法执行,create、del等其他操作的sql通过调用C8ExecuteDDL执行。