【发布时间】:2013-08-12 20:20:16
【问题描述】:
我有一个从 .sql 文件运行的存储过程,该文件接受用户的输入并运行该过程。该过程运行许多查询并将一行值插入到表中。在 .sql 文件中,我想在完成运行查询后按某个列对表进行排序。目前我有:
DECLARE
NAMEPARAM VARCHAR2(200);
VERSIONPARAM VARCHAR2(200);
STARTDATE DATE;
ENDDATE DATE;
BEGIN
NAMEPARAM := '&1';
VERSIONPARAM := '&2';
STARTDATE := '&3';
ENDDATE := '&4';
PROCEDURE(NAMEPARAM, VERSIONPARAM, STARTDATE, ENDDATE);
COMMIT;
Select * from TABLE_NAME
ORDER BY COLUMN_NAME ASC;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR(-20101,SQLERRM);
END;
/
但是它会抛出错误:
PLS-00428:此 SELECT 语句中应有一个 INTO 子句
我不知道为什么它需要一个 into 子句。帮忙?
编辑: 澄清一下,我不想看到已排序表的输出,我希望表本身能够更新并按列按升序排序。
【问题讨论】:
-
“排序 Oracle 表”是什么意思?表是无序的行集。他们没有订单。查询结果可以排序,由
order by子句决定。 -
@javakid1993,我怀疑您在误解 Oracle 表中的行具有内在顺序。哪有这回事。行仅在查询时排序。
-
好吧,我的意思是即使在插入要按顺序插入的行时也要有一个子句。但我理解我来自哪里的错误。谢谢。
标签: sql oracle stored-procedures sqlplus