在批处理文件中拆分以逗号分隔的字符串并在循环中调用 sqlplus 函数

Split string separated by comma in a batch file and call a sqlplus function in the loop

我试图拆分一个用逗号分隔的字符串,然后用每个拆分的字符串调用 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

您需要使用标准的 FOR 命令。也不要养成为变量分配引号的习惯。对于编码批处理文件,这是不好的做法。最好的做法是使用它们包围赋值以保护特殊字符并防止尾随空格被分配给值。

@echo off
set "CCVs=0008123123,000815432123"
for %%a in (%CCVs%) do (
    SQLPLUS -S -L %DBCONN% @%~dp0generate.sql %%a
)