10

我正在运行以下报告,但出现错误

/* 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

4 回答 4

25

cl scr是SQL中用来清屏的命令。

于 2014-12-23T12:43:10.357 回答
10

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

应该在版本 11.2 中工作,但引用10g 文档

CLEAR SCREEN 在 SQL*Plus 中不可用。

11.1 文档中没有相同的注释,这意味着您使用的是 Oracle 10g 或更早版本。如果这个假设是真的,那么你能做的就很少了。

如果您使用的是 Windows,或者,如果您使用的是 Linux,您可以使用hostSQL*Plus 中的命令来运行,但我不确定它是否会产生完全相同的效果。如果可能的话,它只是:clsclear

host cls

host从 SQL*Plus 运行操作系统命令,因此会出现清屏。

于 2012-12-01T23:26:08.570 回答
5

只需使用cl scr命令清除 SQL 加号。

于 2018-10-13T01:51:20.183 回答
0

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

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

于 2014-11-25T20:15:44.510 回答