如何在oracle中解析已定义的变量?

如何在oracle中解析已定义的变量?,oracle,append,Oracle,Append,我是Oracle db的新手,正在编写脚本。所以我试着和一个亲戚一起运行很多脚本 var path和我有子文件夹 Folder A: Folder A.Child-1 Folder A.Child-2 RunAll.sql Folder A.Child-1: Script 1 Script 2 我知道我们可以定义路径变量,如: define path='C:\Folder A.Child-1'; @&pathScr\RunAll.sql; 如果我为例如:scri

我是Oracle db的新手,正在编写脚本。所以我试着和一个亲戚一起运行很多脚本 var path和我有子文件夹

Folder A:
  Folder A.Child-1
  Folder A.Child-2
  RunAll.sql

Folder A.Child-1:
  Script 1
  Script 2
我知道我们可以定义路径变量,如:

define path='C:\Folder A.Child-1';
@&pathScr\RunAll.sql;
如果我为例如:script1放置一个完整的路径,那么脚本可以是exec。但是有没有什么方法可以做到:

define Scriptpath= Concat(&path, 'Folder A.Child-1')
@&Scriptpath\Script 1.sql;
所以我只需要声明一次路径

我的尝试:

define Scriptpath= concat(&path, 'Folder A.Child-1')
@&Scriptpath\Script 1.sql;


define Scriptpath= &path || 'Folder A.Child-1'
@&Scriptpath\Script 1.sql;

Declare Scriptpath:= = &path || 'Folder A.Child-1';
Begin
End;
@&Scriptpath\Script 1.sql;
所有这些试飞返回的错误

Can not open file concat(&path, 'Folder A.Child-1')

您不需要
concat
,只需使用与shell脚本中简单变量替换相同的方法即可:

SQL>def path1='mypath'
SQL>def path2='&path1/xyz.SQL'
SQL>提示符和路径1
我的路径
SQL>提示符和路径2
mypath/xyz.sql