我有一个文本文件,其中每一行都是一个id。看起来像这样
008700200107044314929
0049RXPRISE9000000476
0049GMLCLT00000001021
0147RXPRISE0000094208
0111RXPRISE0000043962
0132GDLCLT00000001637
002120001126002858830
0148FI000000000153554
0021JT000000000536614
我想使用该文件并将每行作为参数传递给我的批处理文件中的SQL * PLUS。
我想做这样的事情:
sqlplus -l -s %cfg.pivot.user%/%cfg.pivot.pass%@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=%cfg.pivot.server%)(Port=1521))(CONNECT_DATA=(SID=%cfg.pivot.base%))) @%sql_histo% "%list_id_cli_temp%" >> %logfile%
%list_id_cli_temp%是我的文本文件,%sql_histo%是我的SQL命令,它就像这样
insert into xyz.clt_reinsert_histo select id_client, sysdate, code_societe , code_etabliss , date_session , date_heure , numero_ordre FROM xyz.ctransaction where id_client='&1';
但是像这样它不起作用。有人有想法解决这个问题吗?
答案 0 :(得分:0)
好的,感谢@aschipfl,我使用for / F在我的文本文件中循环并提取我的ID。
for /F "tokens=1-10" %%a in (%list_id_cli_temp%) do (
sqlplus -l -s %cfg.pivot.user%/%cfg.pivot.pass%@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=%cfg.pivot.server%)(Port=1521))(CONNECT_DATA=(SID=%cfg.pivot.base%))) @%sql_histo% "%%a" >> %logfile%
)
像这样,我接受前10行并使用%% a从文本文件的每一行获取我的ID并将其通过参数传递给我的sql命令