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

时间:2012-04-23 14:38:33

标签: 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_type from dual;

因此,当我运行脚本时,它会提示我输入值。我想自动化这个脚本。我如何传递然后用于提示的脚本参数?我无法通过删除提示来修改脚本。

我使用的是Windows Server 2008和Windows 7.

2 个答案:

答案 0 :(得分:1)

在Unix上你可以使用这里的文件:

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

答案 1 :(得分:0)

假设您从命令行或批处理文件等传递值,您可以使用&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命令之后你不需要分号。