【发布时间】:2016-02-25 08:32:38
【问题描述】:
我想将下面的查询传递给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 命令,怎么办?
【问题讨论】:
标签: sql oracle batch-file escaping