在批处理脚本中需要帮助:使用 1 或 2 个数组或解析具有元组名称编号的文件

发布于 2024-10-20 17:35:03 字数 666 浏览 6 评论 0原文

我想运行使用一些参数(更准确地说是名称和关联号码)自定义的 sqlldr 命令。现在我只对名称进行迭代,但我想将每个名称与一个数字相关联。

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For %%X in (region nation supplier customer part partsupp orders lineitem) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=<associated_number> multithreading=true
)

我有 2 个选择:使用另一个数字数组(这可能是最难的事情)或解析文本文件,例如:

region 25 (or region DELIMITER 25)  
nation 100
supplier 5000 

等等

,然后将这些值获取到 vars 并在 sqlldr 命令中使用它们来自定义我的日志名称和行数。

我知道批处理脚本中的数组是一场噩梦,我正在尝试,但我无法做到正确。有人可以帮我吗?

I want to run a sqlldr command customized with some parameters, more precisely a name and a associated number. For now I only have an iteration through names but I want to associate each of it with a number.

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For %%X in (region nation supplier customer part partsupp orders lineitem) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=<associated_number> multithreading=true
)

I have 2 options: do it with another array of numbers (which may the hardest thing) or parse a text file like:

region 25 (or region DELIMITER 25)  
nation 100
supplier 5000 

and so on

and then get those values to vars and use them in the sqlldr command to customize my log name and the number of rows.

I understand that arrays in batch script are a nightmare and I'm trying but I can't get it right. Could someone please help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随梦而飞# 2024-10-27 17:35:03

如果将此:保存

region 25
nation 100
supplier 5000

在名为 params.txt 的文件中,则此脚本将读取该文件并相应地替换值:

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For /F "tokens=1,2" %%X in (params.txt) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=%%Y multithreading=true
)

If you save this:

region 25
nation 100
supplier 5000

in a file named, for example, params.txt, then this script will read the file and substitute the values accordingly:

@echo off
set ORACLE_PWD=orcl
set NLS_NUMERIC_CHARACTERS=.,
setlocal
echo "Run number " %1
For /F "tokens=1,2" %%X in (params.txt) do (
sqlldr userid='sys/%ORACLE_PWD% as sysdba' log=%%X%1.log control=%%X.ctl direct=true rows=%%Y multithreading=true
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文