包中变量定义问题

jisg_57 2014-06-25 11:34:10
在包头中定义了变量v_sd date := sysdate,以后在包体中引用v_sd时,发现相隔十几分钟,取得的v_sd不变,求问是什么原因。
...全文
273 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
善若止水 2014-06-28
  • 打赏
  • 举报
回复
我的理解是这样的,包头中定义的变量是全局性的,只要引用了包,变量就被赋值了。
卖水果的net 2014-06-27
  • 打赏
  • 举报
回复
sysdate 取的是当前的时间,你现在取是现在的时间,10分钟后取是10 分后的时间 ,你把 sysdate 给了一个变量,变量记录的就是当时的时间,如果你不想让他变的话,这个变量就别用了,直接用 sysdate .
  • 打赏
  • 举报
回复
这也就是说ORACLE中的Package相当于我们java中的一个class,在运行的时候被实例化,因此其中包变量就像是该实例中的实例变量一样。在Oracle中对包一个会话调用中,包变量是该会话中的“全局”变量。 Ps:包头和包体变量的区别 包头的变量对其他包可见,包体变量只对本包可见。
luckman100 2014-06-25
  • 打赏
  • 举报
回复
包被加载时,这个变量就已经赋值了,以后用的时候都是这个值,不会再变了,就跟一般的变量一样的原理

17,140

社区成员

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

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