如何使用批处理文件将绑定变量值传递给 SQLplus

Posted

技术标签:

【中文标题】如何使用批处理文件将绑定变量值传递给 SQLplus【英文标题】:How to pass Bind variable value to SQLplus using Batch file 【发布时间】:2020-05-12 02:32:09 【问题描述】:

我想使用批处理文件将值传递给 Sqlplus 并将输出存储在 excel 中。

SQL code:

Select :v_customerName||'|'||id||'|'||SUBMISSION_DATE||'|'||VALUE
from job_summary 

在 job_summary 表中,我只有 3 列(id、date、value)。我必须使用批处理文件传递客户名称。

MY OUTPUT in Excel:
  |1|1-may-20|234
  |2|4-may-20|235
Output I want:
  abc|1|1-may-20|234
  abc|2|4-may-20|235

我现在不知道如何在批处理脚本中为客户粘贴值。

My batch:
sqlplus hr/hr@ @Header.sql !customername!

【问题讨论】:

阅读此oracle-base.com/articles/misc/… 通过使用替换变量,我如何从批处理文件中传递值以及如何将该值添加到输出文件中 绑定变量还是替换变量? 【参考方案1】:

.SQL脚本内容:

set colsep ';'
set ver off
set heading off
spool a.txt

select '&1', ename, job
from emp
where deptno = 10;

spool off
exit

如下调用; Littlefoot 是你想在输出文件中看到的参数:

c:\Temp>sqlplus scott/tiger @p Littlefoot

SQL*Plus: Release 11.2.0.2.0 Production on Uto Svi 12 07:14:38 2020

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production


Littlefoot;CLARK     ;MANAGER
Littlefoot;KING      ;PRESIDENT
Littlefoot;MILLER    ;CLERK

Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

c:\Temp>

结果:

c:\Temp>type a.txt

Littlefoot;CLARK     ;MANAGER
Littlefoot;KING      ;PRESIDENT
Littlefoot;MILLER    ;CLERK


c:\Temp>

所以:

只需传递参数 使用& 符号引用它(在.sql 脚本中)

【讨论】:

以上是关于如何使用批处理文件将绑定变量值传递给 SQLplus的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量值从一个文件中的一个类传递给另一个文件中的另一个类python tkinter

如何将过程中的变量值传递给 Apex 中的 Javascript 函数

如何将变量值“传递”给 JSON 动态对象?

如何将变量值传递给套接字字符串

如何将 AngularJS 变量值传递给 C# 控制器?

如何将变量值传递给julia中的宏?