gpt4 book ai didi

sql - 将批处理文件中的参数传递给 sqlplus 脚本

转载 作者:行者123 更新时间:2023-12-01 12:25:50 25 4
gpt4 key购买 nike

我正在尝试为我每天运行的某些脚本获取一个包含我的用户名和密码的文件。我现在有几个脚本在使用一个包含我的用户名和密码的批处理文件。

我的密码批处理文件如下所示。
参数文件

Rem Oracle Db
set odbUsername=myUserName
set odbpassword=myPassword

我的其他脚本调用该批处理文件并正常获取信息。我有几个 sql 脚本,我也需要使用这些用户名和密码。我似乎无法让他们工作。但我对 sqlplus 脚本相当陌生。

我的 Sql 脚本看起来像这样。
CONNECT myusername@Oracleddbname/mypassword

SET FEEDBACK OFF;
SET ECHO OFF;
SET TERMOUT OFF;
SET HEADING OFF;
SET PAGESIZE 0;
SET LINESIZE 500;
SET TIMING OFF;
SET TRIMSPOOL ON;
SET COLSEP ',';

SPOOL C:\FileTransfers\MeterData.csv

PROMPT CoopCode,MeterID,DateTime,Value
SELECT DISTINCT
a.coopcode
|| ','
|| a.meterno
|| ','
|| a.readdatetime
|| ','
|| a.usage
FROM temp_reconfigured a, temp_goodsence b
WHERE a.coopcode = b.coopcode AND a.meterno = b.meterno
;

Spool off;

EXIT;

我使用通过 Windows 任务调度程序运行的批处理文件调用此脚本。

它看起来像这样。
sqlplus /nolog        @C:\FileTransfers\AutomationScripts\GoodSence\SpoolGoodSenceDataSet.sql

所以我想将用户名从批处理文件传递给sql。我已经阅读了几篇文章并尝试了大约 30 篇,但似乎都没有奏效。提前谢谢你的帮助。

最佳答案

您可以通过以下方式传递参数:

脚本.sql:

select '&1' from dual;

电话:
D:\>sqlplus user/password@db @d:\script.sql 'value'

SQL*Plus: Release 11.2.0.2.0 Production on Lun Ott 3 17:02:10 2016

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


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

old 1: select '&1' from dual
new 1: select 'value' from dual

'VALU
-----
value

关于sql - 将批处理文件中的参数传递给 sqlplus 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39834548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com