本人纯菜鸟,刚学习Oracle不久,现遇到如下问题,请教各位。
语句如下,我在SQL PLUS中完全没问题,在PL SQL中却提示无效语句,这根PL SQL版本有关系吗?我用的是9.0.6.1665
variable v_dept number
exec :v_dept :=10
select *
from hr.employees e
where e.department_id=:v_dept
SQL PLUS中执行结果如下:
...全文
2334打赏收藏
为什么在SQL PLUS中能执行,在PL SQL中却报错
本人纯菜鸟,刚学习Oracle不久,现遇到如下问题,请教各位。 语句如下,我在SQL PLUS中完全没问题,在PL SQL中却提示无效语句,这根PL SQL版本有关系吗?我用的是9.0.6.1665 variable v_dept number exec :v_dept :=10 select * from hr.employees e where e.department_id=:v_dept SQL PLUS中执行结果如下:
语法不一样的。改成这样:
declare
v_dept number;
begin
v_dept :=10;
select * from hr.employees e where e.department_id=v_dept;
end;
但是在plsql中是不支持这么直接查询的,必须写成select into 的形式,所以上面的写法也是不对的。
要想达到你说的效果可以使用绑定变量~