oracle 8 pl sql的问题

xxhh 2000-08-03 12:31:00
我 最近 在用 oracle 8时发现 ,一些 sql 语句只能在sql plus中单句运行,但写在
store produrce 中就不行 编译时出错,(我说的不是 ddl 语句,只是一些 dml ,select ,update,delete
等,只是稍复杂一些的SQL语句),但oracle 的文档上说 pl sql 中支持所有的 dml sql

请问是否有人遇到过种情况 ,或oracle 有这方面的限只?
...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tommy Chang 2000-09-22
  • 打赏
  • 举报
回复
oracle的嵌套查询能力确实不敢恭维。

以前写pl/sql的时候,还碰到一个恶心的问题,就是一种类型的嵌套查询过后出错,end of communication channel,出错信息大概是这个样子的,当前session就这么断了。

各位,还有谁碰到了?就在oracle 8.1.5上。8.0.5没事。8i的后继版本没试过。

:)
halbert 2000-09-21
  • 打赏
  • 举报
回复
很好fxx
Fxx 2000-08-08
  • 打赏
  • 举报
回复
用ORACLE自己的PACKAGE:DBMS_SQL应该能执行所有的SQL语句.
9Thoughts 2000-08-07
  • 打赏
  • 举报
回复
我试了一下,看来是不行,ORACLE的解释是使用了不适当的语法单位。
这样写是可以的:
update
(select c.c1, c.c2 cc2, c.c3 cc3, c.c4 cc4 from c)
set c1 = c1 + 表达式);

看来在PL/SQL语句里编译不了这么复杂的语句。
xxhh 2000-08-06
  • 打赏
  • 举报
回复
sql 语句大概是(我已经作了简化)
update
(select c.c1, c.c2 cc2, c.c3 cc3, c.c4 cc4 from c)
set c1 = c1 +
(
select nvl(sum(p.p1),0)
from p where p.p2 = cc2 and p.p3 = cc3 and p.p4=cc4
);
将其直接在sqlplus中执行 成功
如果写成plsql ,(加上begin...end)则执行失败

我的store procedure 都是写在package 中的。
9Thoughts 2000-08-05
  • 打赏
  • 举报
回复
把你的SQL语句发来好不好?
guostong 2000-08-04
  • 打赏
  • 举报
回复
能否说的详细点?
Fxx 2000-08-04
  • 打赏
  • 举报
回复
Oracle在这方面是有一些限制,
但是可以换个方法执行,
用Oracle的Package试一下。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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