SQL * Plus中的清除屏幕

时间:2012-12-01 17:23:14

标签: sql oracle sqlplus

我正在运行以下报告,但收到错误

/* Simple table formatting */

clear screen;
accept Report_File char prompt 'Enter a file name for summary report ';

/*Set up column headers*/
col StoreCode format A8 heading 'Store Code';
col DESCRIPTION format A8 heading 'Item Description';
col PRICE format $999999.99 heading 'Price';
col QUANTITY format 999 heading 'Quantity';
col (Price*Quantity) format $999999.99 heading 'Value';

/*Format and title pages */

set Pause off;
set Feedback off;
set Space 6;
set newpage 2;
set pagesize 54;
set linesize 200;
set underline =;
title center 'Current Stock Value by Store' skip 2 left -
            'prepared by Jason Kemeys' &Report_Officer right -
            &Todays_Date skip4;
btitle center format 999 SQL.PNO;

/* Set breaks and computes */

break on StoreCode skip 2 on SuppCode skip 1 on Report;
compute sum of (Price*Quantity) on StoreCode;
compute sum of (Price*Quantity) on Report;

/*Select data & send to file*/

spool &Report_File;

select StoreCode, Description, Quantity, Price, (Price*Quantity)
from Stocks
order by StoreCode;

spool off;

/* Clear all settings */

clear breaks;
clear columns;
clear computes;
set Pause on;

只需要知道为什么它会显示错误以及如何让它运行;第一次在SQL中做报告。

这是我得到的错误

  清除屏幕;   *第2行的错误:ORA-00900:无效的SQL语句

4 个答案:

答案 0 :(得分:12)

cl scr是用于在SQL中清除屏幕的命令。

答案 1 :(得分:7)

我怀疑这取决于您使用的Oracle版本。

should work in version 11.2,但请引用10g documentation

  

SQL * Plus中没有CLEAR SCREEN。

11.1 documentation中没有相同的注释,这意味着您使用的是Oracle 10g或更早版本。如果这个假设是真的那么你几乎无能为力。

可能您可以利用SQL * Plus中的host命令运行cls(如果您使用的是Windows)或clear,如果你正在使用Linux,但我不确定它会产生完全相同的效果。如果可能的话,那就是:

host cls

host从SQL * Plus运行操作系统命令,因此将显示以清除屏幕。

答案 2 :(得分:2)

只需使用cl scr命令即可​​清除SQL plus。

答案 3 :(得分:0)

很少出现“;”在你的代码中实际上是需要的。例如,以“clear screen”命令开头,不需要分号。当你添加一个时它会工作,但我不确定同一个文件中的所有后续命令。需要它们的命令仅限于INSERT,UPDATE,DELETE,COMMIT,ROLLBACK等。

其次,如果您从SQL文件中得到奇怪的反馈,并且如果您在Linux / Unix之外编写它们,那么这通常会导致SQLPLUS抱怨不可见的字符。通过VI和CAT命令查看该文件,并记下任何奇怪的内容。