+ -
当前位置:首页 → 问答吧 → SQL命令使用疑问

SQL命令使用疑问

时间:2011-11-01

来源:互联网

sql文件如下:
SQL code

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:
SQL code
declare
      lpath varchar2(10);
begin
execute immediate '@'||lpath||'B.sql';
end;


作者: MARKtft   发布时间: 2011-11-01

路径可以在os的批处理文件里写成一个变量,这个没问题。
不过第二个想法就太不靠谱了,动态不是这么用的,什么都可以拿来调...

作者: wildwave   发布时间: 2011-11-01