为什么在SQL PLUS中能执行,在PL SQL中却报错

qq7092 2016-09-13 07:21:48
本人纯菜鸟,刚学习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中执行结果如下:

...全文
233 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq7092 2016-09-14
  • 打赏
  • 举报
回复
嘿嘿,谢谢各位哈!
  • 打赏
  • 举报
回复
二楼说的对,需要改写成成存储过程或者函数才能在执行
ghx287524027 2016-09-13
  • 打赏
  • 举报
回复
语法不一样的。改成这样: declare v_dept number; begin v_dept :=10; select * from hr.employees e where e.department_id=v_dept; end; 但是在plsql中是不支持这么直接查询的,必须写成select into 的形式,所以上面的写法也是不对的。 要想达到你说的效果可以使用绑定变量~
卖水果的net 2016-09-13
  • 打赏
  • 举报
回复
你的这段代码,在 PLSQL 中的 Command Window 可以运行的; 如果要在 SQL Window 中运行,要改成存储过程(或函数),不能直接返回结果集;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧