【发布时间】:2010-11-16 18:44:29
【问题描述】:
好的,假设我有一个问题:
SELECT * FROM TABLE_AWESOME WHERE YEAR = :AMAZINGYEAR;
效果很好。但是假设我希望能够仅返回这些结果或基于下拉列表返回所有结果。 (例如,下拉列表将包含 2008、2009、ALL YEARS)
我决定用 PL/SQL 解决上述问题,格式如下:
DECLARE
the_year VARCHAR(20) := &AMAZINGYEAR;
BEGIN
IF the_year = 'ALL' THEN
SELECT * FROM TABLE_AWESOME;
ELSE
SELECT * FROM TABLE_AWESOME WHERE YEAR = the_year;
END IF;
END;
不幸的是,这失败了。我收到诸如“此 SELECT 语句中应有 INTO 子句”之类的错误。
我对 PL/SQL 完全陌生,所以我认为我对它的期望太高了。我查看了文档,但没有找到任何理由说明这不能按照我的方式工作。我实际使用的查询比这复杂得多,但我想保持简单,以便我能很快得到答案。
提前致谢:)
【问题讨论】:
-
你必须对查询的结果做一些事情。接下来你想做什么?
-
我只希望它返回结果。我在 ASP.NET 中使用 SqlDataSource 绑定到结果。我不打算将其创建为一个过程,我只想执行该块并绑定到结果。这可能吗?