有没有办法自动输入sql脚本提示?

有没有办法自动输入sql脚本提示?,sql,oracle,Sql,Oracle,我有一个包含如下语句的sqlscript: prompt Enter 'html' for an HTML report, or 'text' for plain text prompt Defaults to 'html' column report_type new_value report_type; set heading off; select 'Type Specified: ',lower(nvl('&&report_type','html')) report_

我有一个包含如下语句的sqlscript:

prompt Enter 'html' for an HTML report, or 'text' for plain text
prompt  Defaults to 'html'

column report_type new_value report_type;
set heading off;
select 'Type Specified: ',lower(nvl('&&report_type','html')) report_type from dual;
因此,当我运行脚本时,它会提示我输入值。我想自动化这个脚本。如何传递给脚本参数,然后用于提示?我无法通过删除提示来修改脚本


我正在使用Windows Server 2008和Windows 7。

在Unix上,您可以使用以下文档:

#>sqlplus un @script <<EOF
yourpassword
parameter#1
parameter#2
EOF

#>sqlplus un@script假设您正在从命令行或批处理文件等传递值,您可以使用
&1,&2&n
,其中数字是调用时参数的位置

column report_type new_value report_type
set heading off

select 'Type Specified: ',lower(nvl('&1','html')) report_type from dual;
这将被称为

[call sqlplus schema/pw@db @] my_script.sql html 

顺便说一句,SQL*Plus命令后不需要分号。

脚本有提示,我无法通过删除提示来修改脚本。根据定义,提示是提示。我并不是建议您删除变量,只是以不同的方式分配它们。我的意思是提示等待您输入一个值。当我想自动化脚本时,如何在不从脚本中删除提示的情况下通过提示?不要使用提示。。。使用我建议的方法(或者动态设置变量,但这更复杂)。提示将始终要求输入值。你必须在被要求之前设置这个值。好吧,sql脚本是别人写的,我不允许重写它,所以我必须想一些别的办法。谢谢