我在使用参数传递的某些SQL脚本中遇到了问题。
我这样调用一个脚本:
DEFINE sowner = "SOWNER"
DEFINE auser = "AUSER"
DEFINE tbsp = "TAB"
DEFINE insp = "IND"
@R1/do_your_job.sql $owner $auser $tbsp $insp
在R1 / do_your_job内部:
define sowner = $1
define auser = $2
define tbsp = $3
define insp = $4
alter session set current_schema=$sowner;
然后我得到:Ora 00911:标记我的$符号的无效字符
为什么不将$ owner解码为“ SOWNER”?
我的文件仍然标有“设置定义$” ...
谢谢。
答案 0 :(得分:1)
通过时使用'&variable'
,阅读时使用'&1', '&2'
等。
DEFINE sowner = "SOWNER"
DEFINE auser = "AUSER"
DEFINE tbsp = "TAB"
DEFINE insp = "IND"
@R1/do_your_job.sql &sowner &auser &tbsp &insp
您的do_your_job.sql
可以用作
select '&1','&2','&3','&4' from dual;
结果
@R1/do_your_job.sql &sowner &auser &tbsp &inspSQL> SQL> SQL> SQL> SQL>
old 1: select '&1','&2','&3','&4' from dual
new 1: select 'SOWNER','AUSER','TAB','IND' from dual
'SOWNE 'AUSE 'TA 'IN
------ ----- --- ---
SOWNER AUSER TAB IND