在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数
Posted
技术标签:
【中文标题】在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数【英文标题】:Split string separated by comma in a batch file and call a sqlplus function in the loop 【发布时间】:2021-12-24 03:10:56 【问题描述】:我正在尝试拆分用逗号分隔的字符串,然后使用每个拆分的字符串调用 sql 函数。要拆分的字符串的长度是可变的。
我有这个代码:
setlocal enabledelayedexpansion
@echo off
set CCVs="0008123123,000815432123"
for /F "delims=," %%a in ("%CCVs%") do (
SQLPLUS -S -L %DBCONN% @%~dp0generate.sql %%a
)
但我看到循环使用参数“0008123123 000815432123”调用 SQLPLUS 函数,而不是两次,一次是字符串 0008123123,第二次是 000815432123
【问题讨论】:
我建议您像set "CCVs=0008123123,000815432123"
这样定义您的变量,以免在其值数据中包含不必要的双引号。
【参考方案1】:
您需要使用标准的 FOR 命令。也不要养成为变量分配引号的习惯。在编写批处理文件方面,这是一种不好的做法。最好的做法是使用它们来包围赋值以保护特殊字符并防止尾随空格被分配给该值。
@echo off
set "CCVs=0008123123,000815432123"
for %%a in (%CCVs%) do (
SQLPLUS -S -L %DBCONN% @%~dp0generate.sql %%a
)
【讨论】:
以上是关于在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数的主要内容,如果未能解决你的问题,请参考以下文章