我想将以下查询传递给sqlplus
命令。
select 'Version ID: ' || a1.BACKUP_VERSION || CHR(13) || CHR(10)||'Status: ' || a1.STORAGE_STATUS || CHR(13) || CHR(10)|| 'Distribution ID: ' || a1.DISTRIBUTION_ID FROM epc1_distrib_version a1;
当我使用插入符号^
在屏幕上回显时,它能正常工作。echo select 'Version ID: ' ^|^| a1.BACKUP_VERSION ^|^| CHR(13) ^|^| CHR(10)^|^|'Status: ' ^|^| a1.STORAGE_STATUS ^|^| CHR(13) ^|^| CHR(10)^|^| 'Distribution ID: ' ^|^| a1.DISTRIBUTION_ID FROM epc1_distrib_version a1;
它显示了正确的查询字符串。但是当我在批处理文件中使用时,它无法正常工作。这是我尝试运行的代码:
@ECHO OFF
echo Connecting to Database...
echo +++++++++++++++++++++++++
(
echo user/pass@instance
echo select 'Version ID: ' ^|^| a1.BACKUP_VERSION ^|^| CHR(13) ^|^| CHR(10)^|^|'Status: ' ^|^| a1.STORAGE_STATUS ^|^| CHR(13) ^|^| CHR(10)^|^| 'Distribution ID: ' ^|^| a1.DISTRIBUTION_ID FROM epc1_distrib_version a1;
)| sqlplus -s
echo +++++++++++++++++++++++++
它只显示这个:
Connecting to Database...
+++++++++++++++++++++++++
user/pass@instance
select 'Version ID: ' || a1.BACKUP_VERSION || CHR(13
+++++++++++++++++++++++++
它没有将查询传递给 sqlplus
命令,该怎么办?
set /P
和""
的替代方法;这样可以避免需要(双重)转义... - aschipfl