ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » 一个奇怪的问题

标题: 一个奇怪的问题
离线 caizhuoyi
Oracle Stranger


精华贴数 2
个人空间 0
技术积分 1524 (1105)
社区积分 448 (1500)
注册日期 2006-3-1
论坛徽章:4
授权会员生肖徽章2007版:龙2008北京奥运纪念徽章:棒球数据库板块每日发贴之星  
      

发表于 2008-6-24 14:06 
一个奇怪的问题

最近在论坛该版块上活跃的人物:
不是zhangfengh 就是
zhangweicai74 不是
bell6248 就是
jvkojvko

难道大家都像我一样都闲在家里?

为了防止此贴被以外处理,特提一个技术问题:
PL/SQL中的显示或隐式游标,与SQL处理过程中的创建游标的游标,有什么区别啊?


__________________
我不在江湖,但江湖中有我的传说;
我身在江湖,江湖里却没有我的传说。
只看该作者    顶部
在线/呼叫 zhangweicai74
阿财


来自 贵州
精华贴数 3
个人空间 240
技术积分 5743 (231)
社区积分 21838 (59)
注册日期 2007-12-13
论坛徽章:156
授权会员生肖徽章2007版:狗生肖徽章2007版:虎生肖徽章2007版:龙  
      

发表于 2008-6-24 14:16 
jvkojvko是NO.1

我主要是来学习的.
最近不是很忙,很多事情都弄平了,还有很多不平事暂时不想弄

jvkojvko也是待工厂的,运行正常就不忙
BELL6248是SQL高手,热心人,经常帮人解决实际问题,曾为我解决了不少问题.
老狐狸是斑竹,职责所在.

--回答完毕--

[ 本帖最后由 zhangweicai74 于 2008-6-24 14:19 编辑 ]


__________________
NEVER TOO LATE
想吃贵州家乡菜不?进来嘛,老乡!!
http://space.itpub.net/12391917/viewspace-257185
玩玩双节棍(l_l)

美丽家乡黄果树瀑布
http://space.itpub.net/12391917/viewspace-244134
只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5659 (233)
社区积分 45987 (16)
注册日期 2007-9-10
论坛徽章:17
      
      

发表于 2008-6-24 14:17 


QUOTE:
原帖由 zhangweicai74 于 2008-6-24 14:16 发表
我主要是来学习的.
最近不是很忙,很多事情都弄平了,还有很多不平事暂时不想弄

哈哈,本人现在处于工作状态最低谷中,来这里是逃避啊,惭愧


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5659 (233)
社区积分 45987 (16)
注册日期 2007-9-10
论坛徽章:17
      
      

发表于 2008-6-24 14:18 
我已经连续一个礼拜拿灰鲨了,唉


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 visual2006



精华贴数 0
个人空间 0
技术积分 776 (2443)
社区积分 4 (18499)
注册日期 2006-7-23
论坛徽章:1
      
      

发表于 2008-6-24 14:19 
的确是一个奇怪的问题


只看该作者    顶部
在线/呼叫 zhangweicai74
阿财


来自 贵州
精华贴数 3
个人空间 240
技术积分 5743 (231)
社区积分 21838 (59)
注册日期 2007-12-13
论坛徽章:156
授权会员生肖徽章2007版:狗生肖徽章2007版:虎生肖徽章2007版:龙  
      

发表于 2008-6-24 14:21 
还是LZ休假中好!
请发仔回答这个问题:
PL/SQL中的显示或隐式游标,与SQL处理过程中的创建游标的游标,有什么区别啊?


__________________
NEVER TOO LATE
想吃贵州家乡菜不?进来嘛,老乡!!
http://space.itpub.net/12391917/viewspace-257185
玩玩双节棍(l_l)

美丽家乡黄果树瀑布
http://space.itpub.net/12391917/viewspace-244134
只看该作者    顶部
离线 junsansi
无名扫把


来自 bj
精华贴数 7
个人空间 9096
技术积分 8237 (153)
社区积分 687 (1173)
注册日期 2006-7-17
论坛徽章:66
现任管理团队成员2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:皮划艇静水2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:游泳
      

发表于 2008-6-24 14:31 


为免有灌水嫌疑,俺回答楼主问题~~

pl/sql中声明的游标需要你手工声明,手工处理~~

sql中触发的游标由oracle自动声明,自动处理


__________________
沉淀是一件很枯燥的事情,我要从沉淀中汲取营养,于枯燥中寻找乐趣,我没疯,你才是疯子,哇哈哈,哇哈哈哈哈~~
============================================
http://www.5ienet.com我爱我佳
扫地不过是我表面上的工作,我真正的身份其实是无名老僧------------------手里那根扫把~~~~
只看该作者    顶部
在线/呼叫 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5659 (233)
社区积分 45987 (16)
注册日期 2007-9-10
论坛徽章:17
      
      

发表于 2008-6-24 14:49 
刚才baidu了一下
搜到这么一段信息:
PLSQL基本知识-游标
01月17, 2008 By steven.gu  Printer View  Email This Post  

Oracle中的游标有两种:
1.显示游标
  显示游标是使用 CURSOR定义或在FOR语句中使用的SELECT语句,它可以对查询返回来的多条记录进行处理。
  1.1显示游标可以在块的定义部分、包或子程序中声明,声明显示游标就是指定游标名和与它关联的SELECT语句,其语法如下:
  CURSOR cursor_name [(parameter[,parameter]…)]
  IS select_statement;
1.2 打开显示游标
定义好显示游标后,就可以对该游标进行操作了。游标操作的第一步是打开游标。打开游标所作的处理是先查找绑定在游标中的变量,然后按照该变量的值确定查询结果集。打开显示游标的语法如下:
OPEN cursor_name[(parameter[,parameter]…)];
  1.3 推进显示游标
当打开显示游标后,就可以使用FETCH语句来推进游标,返回查询结果集中的一行。没执行完一条FETCH语句后,显示游标会自动指向查询结果集的下一行。FETCH语句有下面两种形式:
FETCH cursor_name INTO list_of_variables;
FETCH cursor_name INTO PL/SQL_record;
其中cursor_name是已经声明的游标名字,list_of_variables是已经声明的变量列表,PL/SQL_record是已经定义好的PL/SQL记录。在INTO子句中的变量必须与游标SELECT语句中相应列的类型兼容。
  1.4 关闭显示游标
当整个结果集都检索完以后,应当关闭游标。关闭游标用来通知PL/SQL游标操作已经结束,并且释放游标所占用的资源。关闭游标的语法如下:
CLOSE cursor_name;
其中cursor_name为已经打开的游标名。

2.隐式游标
  隐式游标是在INSERT、DELETE、UPDATE语句或返回单条记录的SELECT into时,由PL/SQL自行定义的。显示游标仅仅是用来控制返回多行的SELECT语句,隐式游标也叫SQL游标。与显示游标不同的是,SQL游标不能通过专门的命令打开或关闭。PL/SQL隐式的打开SQL游标,并在内部处理SQL语句,然后关闭它。

3 游标的属性
  游标有四个属性,它们分别是%FOUND、%NOTFOUND、%ISOPEN、%ROWCOUNT。这些属性将返回游标操作的一些有用信息。但要注意这些属性只能使用在过程性语句中,而不能使用在SQL语句中。
  3.1 %FOUND
%FOUND是一个返回布尔值的属性,如果FETCH语句返回了一行,则该属性返回TRUE,否则返回FALSE。打开游标后没有使用FETCH语句推进,则返回NULL,因为这时属性值无法确定。
  3.2 %NOTFOUND
%NOTFOUND与%FOUND意思相反,如果FETCH语句返回了一行,则该属性返回FALSE,否则返回TRUE。
  3.3 %ISOPEN
该属性用来确定相关的游标是否打开。如果游标已经打开,则%ISOPEN返回TRUE,否则返回FALSE。
  3.4 %ROWCOUNT
返回游标推进的行数。
4 显示游标的循环
  显示游标的操作是循环结果集的行,然后对每行进行处理。我们可以使用LOOP…END LOOP语句、WHILE…LOOP语句、FOR循环执行显示游标的推进循环。
  无论是使用LOOP…END LOOP语句还是使用WHILE…LOOP语句来完成循环,都必须是用OPEN、FETCH和CLOSE语句来控制游标的打开、推进、关闭。FOR循环可以自动控制游标的打开、推进和关闭,不必再使用OPEN、FETCH和CLOSE语句,这叫做游标的FOR循环。



PS:to 三思兄,我没有在这里灌水吧


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 Toms_zhang
会员


精华贴数 1
个人空间 0
技术积分 16893 (59)
社区积分 2046 (591)
注册日期 2002-8-31
论坛徽章:46
现任管理团队成员管理团队2007贡献徽章会员2007贡献徽章2008年新春纪念徽章ITPUB新首页上线纪念徽章 
      

发表于 2008-6-24 14:55 
关于LZ提到的问题,我这里有2个帖子,欢迎参考

http://tomszrp.itpub.net/post/11835/464914
http://tomszrp.itpub.net/post/11835/464915

这两个帖子都是来将cursor的。


__________________
托马斯张MSN:toms_zrp@live.cn  我的BLOG:http://tomszrp.itpub.net
只看该作者    顶部
离线 caizhuoyi
Oracle Stranger


精华贴数 2
个人空间 0
技术积分 1524 (1105)
社区积分 448 (1500)
注册日期 2006-3-1
论坛徽章:4
授权会员生肖徽章2007版:龙2008北京奥运纪念徽章:棒球数据库板块每日发贴之星  
      

发表于 2008-6-24 14:56 
这个我知道。
我的意思是,oracle执行用户请求时,要为一个sql分配一个共享sql区,一个私有sql区,
这个私有sql区就是sql语句执行时所说的创建游标。

不知处理pl/SQL语句的cursor时也会不会分配一个这样的私有sql区?


__________________
我不在江湖,但江湖中有我的传说;
我身在江湖,江湖里却没有我的传说。
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问