sql文件如下:set serveroutput on;
exec dbms_output.put_line('test ...');begin
     ...
end;@C:\SQL\B.sql;
@C:\SQL\B1.sql;
@C:\SQL\B2.sql;
.....
@C:\SQL\N.sql
我在SQL中直接使用@ + 另外一个SQL文件的路径,来实现在SQL文件中调用其他SQL文件。
但现碰到一个问题:希望能将路径的公共部分抽取成一个变量。定义在文件开头,方便整体修改。我想过两种方式,不知道能否实现。请大家不甚赐教。
1、直接在SQL中写:
variable lpath = "C:\SQL" (将C盘SQL目录定义成一个公共字符串,后面所有的SQL文件完整路径用该字符串进行拼接)
@:lpath||B.sql
@:lpath||B1.sql
....2、在PLSQL段中,利用动态SQL:
declare
      lpath varchar2(10);
begin
execute immediate '@'||lpath||'B.sql';
end;