弱问:什么是plsql代码,什么是sql代码?

[复制链接]
查看11 | 回复5 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
今天学习时候碰到一句话:将游标表达式作为函数的实际参数,在顶层的sql语句中是可以的,在plsql代码里则不行。
我就搞不懂:plsql代码与sql代码的严格区分。
平时我们写的存储过程,函数应该都是属于plsql代码,可是里面也会有select语句,还会有dml语句。
还有:有begin....end的代码就是plsql代码吗?
还有:begin....end的代码里调用存储过程,直接写那个存储过程名字就行了,如果在sqlplus的提示符号后面调用过程,则需要
exec procname 这也算是sql代码与plsql代码的一个区分吗?
总之,虚心请教各位老师:plsql代码与sql代码的严格区分
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
这个很容易区分了,SQL你总该知道吧,PLSQL相当于是ORACLE对SQL的一种扩展,让其支持过程化的语句,如 ifloop for 等等
可以简单的这样看,plsql是包括begin...end;的,sql不会有这两句
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 xjg 发布
[B]这个很容易区分了,SQL你总该知道吧,PLSQL相当于是ORACLE对SQL的一种扩展,让其支持过程化的语句,如 ifloop for 等等
可以简单的这样看,plsql是包括begin...end;的,sql不会有这两句 [/B]


在SQLPLUS里也可以写BEGIN END 吧.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 Steven_1981 发布
[B]

在SQLPLUS里也可以写BEGIN END 吧. [/B]

写了begin end; 就是plsql了
比如一句SQL: select sysdate from dual
如果放到 begin ..end 里面就要换成plsql的写法
beign
select sysdate into :Var from dual;
end;
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
各位老大:那就是说有begin ...end里面的就是plsql代码了?
在plsql里面执行的sql有些什么限制?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
基本上已经没有限制了,如果你是Oracle 10G的话,SQL语法在PLSQL里面都支持
当然低版本如8i的话有些SQL在PLSQL中是不能执行的,但还是比较少遇得到。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行