在没有提示变量文本的情况下假脱机 sqlplus 查询

Posted

技术标签:

【中文标题】在没有提示变量文本的情况下假脱机 sqlplus 查询【英文标题】:spooling an sqlplus query without prompted variable text 【发布时间】:2014-07-26 09:24:43 【问题描述】:

我有一个 sql 文件,我在其中提示用户使用 & 符号输入变量,并相应地使用 sqlplus 运行查询。它将输出假脱机到一个 txt 文件。

select * from ledger_line where order_no=&order_no;

我不会把整个脚本放在这里。当我运行它时,提示用户值的文本也显示在输出行之前。我只想显示答案集。验证关闭,反馈关闭不起作用。使用 -s 以静默模式运行 sqlplus 也是没有用的。

命令行:

SQL> @D:/deneme.sql
Connected.
Enter value for order_no: 99

输出txt:

Enter value for order_no: 99
Büro Malzeme Gideri      000001 S 0077030720 81 0077030720         0.90   TRY                                     
TicBrçlr-MG/FG-MMGid     000002 S 0032000103 96 0032000103         0.90 - TRY                             0,90          

有什么想法吗?

【问题讨论】:

【参考方案1】:

在开始假脱机之前从用户那里获取值,使用the accept command:

accept order_no prompt "Enter order number: "
spool my_file
select * from ledger_line where order_no=&order_no;

替换变量由accept定义和填充,所以当你使用select时它已经有一个值,所以它不会再次提示。

【讨论】:

这正是我想要的。非常感谢!

以上是关于在没有提示变量文本的情况下假脱机 sqlplus 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何从 sql 文件创建本地脱机 sqlplus 数据库?

防止 sqlplus 截断列名,没有单独的列格式

sqlplus 假脱机在不同的文件中

在管道分隔的 sqlplus 中带有列标题的假脱机

在 sqlplus 中使用假脱机运行多个查询

sqlplus 动态假脱机文件名