oracle中rownum和@的问题

zfq642773391 2009-11-25 10:09:33
我知道rownum的基本作用是伪列,用于区分每个列;可是下面这种用法不知道是什么作用
select A.begin_date,A.hours,A.sk,sum(C.quality) 
from (
select to_date('2009-1-12','YYYY-MM-DD')+(rownum-1)/24/4 begin_date
,to_date('2009-1-12','YYYY-MM-DD')+rownum/24/4 end_date
,trunc(mod(rownum-1,4*24)/24) hours
,mod(mod(rownum-1,4*24),4) sk
from table_name A,table_name B
where rownum <=4*24*30 --30天
) a left join table_name C on C.c_date between A.begin_date and C.end_date
group by A.begin_date,A.hours,A.sk

题目是每隔15分钟统计一下数据,可是那个rownum/24/4是什么意思,难道rownum还与时间有关,不太明白。
还有就是@,我登陆数据库时用conn sys/r04944 as sysdba可以,但用conn sys/r04944@DBA as sysdba就不行,那@在oracle到底是有何作用啊
请高手指教指教
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2009-11-25
  • 打赏
  • 举报
回复
conn后面的@是NetCa配置的本地Net服务器名配置,连接到远程Oracle数据库
wh62592855 2009-11-25
  • 打赏
  • 举报
回复
TNS没配好
去百度一下那个错误
很多解决办法的
zfq642773391 2009-11-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wh62592855 的回复:]
第一个问题
to_date('2009-1-12','YYYY-MM-DD')+rownum/24/4
前面to_date('2009-1-12','YYYY-MM-DD')代表的是一个日期类型对吧
如果直接对日期类型进行加减操作的话是默认以天为单位的
假设rownum=1 那么1/24是不是就是1个小时 1/24/4是不是就是15分钟了 呵呵

第二个问题
不加@的时候是通过本地验证的方式连接进ORACLE的
你加@的时候登录报什么错
[/Quote]
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified


SP2-0640: Not connected
wh62592855 2009-11-25
  • 打赏
  • 举报
回复
第一个问题
to_date('2009-1-12','YYYY-MM-DD')+rownum/24/4
前面to_date('2009-1-12','YYYY-MM-DD')代表的是一个日期类型对吧
如果直接对日期类型进行加减操作的话是默认以天为单位的
假设rownum=1 那么1/24是不是就是1个小时 1/24/4是不是就是15分钟了 呵呵

第二个问题
不加@的时候是通过本地验证的方式连接进ORACLE的
你加@的时候登录报什么错
小灰狼W 2009-11-25
  • 打赏
  • 举报
回复
@后面跟的是服务器端的sid
比如你连到orcl库,可以conn sys/r04944@orcl
小灰狼W 2009-11-25
  • 打赏
  • 举报
回复
限定记录数的
比如那个子查询中记录超过4*24*30 条,加上这个条件后返回4*24*30 条记录
那个子查询实际上就是为了造出4*24*30 条记录用的

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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