小编Jus*_*alt的帖子

如何平均时间间隔?

在Oracle 10g中,我有一个表,其中包含时间戳,显示某些操作需要多长时间.它有两个时间戳字段:starttime和endtime.我想找到这些时间戳给出的持续时间的平均值.我尝试:

select avg(endtime-starttime) from timings;
Run Code Online (Sandbox Code Playgroud)

但得到:

SQL错误:ORA-00932:不一致的数据类型:预期NUMBER获得INTERVAL DAY TO SECOND

这有效:

select
     avg(extract( second from  endtime - starttime) +
        extract ( minute from  endtime - starttime) * 60 +
        extract ( hour   from  endtime - starttime) * 3600) from timings;
Run Code Online (Sandbox Code Playgroud)

但是真的很慢.

有没有更好的方法将间隔转换为秒数,或者其他方式做到这一点?

编辑:真正放慢这一点的是我在开始时间之前有一些终结时间.由于某些原因,这个计算非常缓慢.我的基本问题是通过从查询集中删除它们来解决的.我还定义了一个函数来更容易地进行这种转换:

FUNCTION fn_interval_to_sec ( i IN INTERVAL DAY TO SECOND )
RETURN NUMBER
IS
  numSecs NUMBER;
BEGIN
  numSecs := ((extract(day from i) * 24
         + extract(hour from i) )*60
         + extract(minute from i) )*60
         + extract(second from …
Run Code Online (Sandbox Code Playgroud)

sql oracle timestamp ora-00932

15
推荐指数
4
解决办法
4万
查看次数

消除SQL Developer表视图的“数据”选项卡上的排序顺序

在Oracle SQL Developer中,查看表时可以使用“数据”选项卡列出表中的数据。还有一个“排序...”按钮,用于设置您正在查看的数据的排序顺序。这对于即时查看某些数据非常方便。

问题:我设置了查看特定表的排序顺序,该表不支持该表的索引。当您查看数据时,SQL Developer似乎会即时进行排序。起初,延迟还算不错。但是桌子已经扩大了,现在需要永远。除强制退出SQL Developer并丢失所有未保存的内容外,没有其他方法可以停止它。(如果您知道另一种停止这种排序的方法,请告诉我!)因此,我应该将查看排序顺序更改为其他排序方式,但是您只能在查看数据时访问“排序...”按钮。

除了查看数据之外,还有其他方法可以删除查看排序顺序吗?

SQL Developer在哪里存储此信息?

在等待数据出现时单击“数据”选项卡后,有什么方法可以停止对数据进行排序?

oracle oracle-sqldeveloper

5
推荐指数
1
解决办法
5977
查看次数

使用PL/SQL如何将文件的内容输入blob?

我有一个文件.我想将其内容放入我的oracle数据库中的blob列或PL/SQL程序中的blob变量中.最好的方法是什么?

oracle file-io plsql blob

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

oracle ×3

blob ×1

file-io ×1

ora-00932 ×1

oracle-sqldeveloper ×1

plsql ×1

sql ×1

timestamp ×1