【发布时间】:2017-02-24 03:33:24
【问题描述】:
我正在尝试实现一个 IF 语句来在我的 Oracle 数据库上运行查询。
期望: 如果员工叫 John,则显示有限项(item1 和 item2),如果不是 John,则显示完整列表。
DECLARE
employeeName STRING := 'John';
BEGIN
IF (employeeName = 'John') THEN
(SELECT TableA.Table from Table where TableA.Table = 'Item1' OR TableA.Table = 'Item2');
ELSE
(SELECT TableA.Table from Table);
END IF;
END;
这是错误输出:
错误报告:ORA-06550:第 6 行,第 2 列:PLS-00103:在预期以下情况之一时遇到符号“ ”:
( begin case declare exit for goto if loop mod null pragma raise return select update while with 'an identifier' 'a double-quoted delimited-identifier' '绑定变量' ""继续关闭当前 删除获取锁插入打开回滚保存点设置sql执行 提交 forall 合并管道清除 06550. 00000 - “第 %s 行,第 %s 列:\n%s”
*原因:通常是 PL/SQL 编译错误。
*行动:
我做错了什么?请原谅我对在数据库上实现的 IF 语句的无知。
【问题讨论】:
-
这是 PL/SQL,你不能像那样嵌入 SQL - 你需要定义如何处理结果(例如
SELECT .. INTO ..)。
标签: database oracle if-statement