我正在运行以下报告,但收到错误
/* 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语句
答案 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命令查看该文件,并记下任何奇怪的内容。