小编Ben*_*Ben的帖子

如何在Oracle中找到命名约束的定义?

我所知道的约束是它的名字(SYS_C003415),但我希望看到它的定义.

oracle

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

删除t-sql中所有大表的最佳方法是什么?

我们遇到了一个有点奇怪的情况.基本上,我们的一个数据库中有两个表格,这些表格是我们不需要或不关心的大量日志信息.部分原因是我们的磁盘空间不足.

我正在试图清理表格,但这是永远的(在周末运行之后仍有57,000,000条记录......而这只是第一张桌子!)

只是使用删除表是永远占用并占用驱动器空间(我相信因为事务日志.)现在我正在使用while循环一次删除记录X,同时玩X来确定实际上最快的.例如,X = 1000需要3秒,而X = 100,000需要26秒......其中数学运算稍快一些.

但问题是,是否有更好的方法?

(完成此操作后,要运行SQL代理作业,请每天清理一次表...但需要先清除它.)

sql sql-server-2005

14
推荐指数
2
解决办法
8070
查看次数

更改实时表格以使密钥非唯一

我看到了一些与此相关的其他问题,但它们不是MySQL.

该数据库是一个实时数据库,因此我不想删除并重新创建该表.我只是想让一个列不再是唯一的,这在本质上是不太宽松的,所以它不应该导致任何问题.

mysql unique alter-table

14
推荐指数
2
解决办法
3万
查看次数

上个月的Oracle日期函数

我有下面的查询,其中日期是硬编码的.我的目标是删除已编码的日期; 查询应该在运行时拉取上个月的数据.

select count(distinct switch_id)
  from xx_new.xx_cti_call_details@appsread.prd.com
 where dealer_name =  'XXXX'
   and TRUNC(CREATION_DATE) BETWEEN '01-AUG-2012' AND '31-AUG-2012'
Run Code Online (Sandbox Code Playgroud)

我应该使用sysdate-15功能吗?

sql oracle sql-date-functions

14
推荐指数
2
解决办法
12万
查看次数

为什么表上的CONNECT BY LEVEL会返回额外的行?

在表上执行时,使用CONNECT BY LEVEL似乎返回太多行.发生了什么事情背后的逻辑是什么?

假设如下表:

create table a ( id number );

insert into a values (1);
insert into a values (2);
insert into a values (3);
Run Code Online (Sandbox Code Playgroud)

此查询返回12行(SQL Fiddle).

 select id, level as lvl
   from a
connect by level <= 2
  order by id, level
Run Code Online (Sandbox Code Playgroud)

表A中每行一行,列LVL的值为1,表LV中的每一行为3,其中列LVL为2,即:

ID | LVL 
---+-----
 1 |  1 
 1 |  2 
 1 |  2 
 1 |  2 
 2 |  1 
 2 |  2 
 2 |  2 
 2 |  2 
 3 |  1 
 3 | …

sql oracle connect-by

14
推荐指数
2
解决办法
7万
查看次数

如何在SQL Server中将星期一设置为星期的第一天

我在具有区域设置的计算机上运行SQL Server 2008,该区域设置将星期一作为一周的第一天.如果我在表中创建一个计算列来计算日期字段的星期几,那么我得到2表示星期一而不是1.

是否需要设置表或数据库或服务器的某些属性?

sql-server dayofweek sql-server-2008

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

如何强制oracle使用索引范围扫描?

我有一系列非常相似的查询,我针对一个包含14亿条记录(带索引)的表运行,唯一的问题是这些查询中至少有10%的执行时间比其他查询多出100倍.

我运行了一个解释计划并注意到快速查询(大约90%)Oracle正在使用索引范围扫描; 在慢速的,它使用完整的索引扫描.

有没有办法强制Oracle进行索引范围扫描?

oracle indexing

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

计算其父项拥有的根的百分比

简单来说,我正在尝试计算其父项所拥有的树的根的百分比,进一步在树上.我怎么能单独用SQL做这个?

这是我的(样本)架构.请注意,虽然层次结构本身很简单,但还有一个额外的holding_id,这意味着单个父母可以"拥有"他们孩子的不同部分.

create table hierarchy_test ( 
       id number -- "root" ID
     , parent_id number -- Parent of ID
     , holding_id number -- The ID can be split into multiple parts
     , percent_owned number (3, 2)
     , primary key (id, parent_id, holding_id) 
        );
Run Code Online (Sandbox Code Playgroud)

还有一些样本数据:

insert all 
 into hierarchy_test values (1, 2, 1, 1) 
 into hierarchy_test values (2, 3, 1, 0.25)
 into hierarchy_test values (2, 4, 1, 0.25)
 into hierarchy_test values (2, 5, 1, 0.1)
 into hierarchy_test values (2, 4, …
Run Code Online (Sandbox Code Playgroud)

sql oracle connect-by hierarchy oracle11gr2

13
推荐指数
2
解决办法
893
查看次数

带有枚举值的jpql IN查询

我正在使用JPQL查询来检查列表是否包含指定的枚举值.如果枚举值是要检查的单个元素,那么它非常简单.

在查询表达式中,

query = "... where s.status = :status";
Run Code Online (Sandbox Code Playgroud)

然后设置参数

query.setParameter("status", statusValue);
Run Code Online (Sandbox Code Playgroud)

但我想检查下面的内容

query = "... where s.status IN (:statusList)";
Run Code Online (Sandbox Code Playgroud)

where statusList是一串数字(例如"0,1,2",表示状态值列表)

但我找不到解决方案.我也s.status.ordinal() IN (statusList)查询过但没有运气.

我正在使用JPA实现:EclipseLink(JPA 2.0)

我的实体的实际名称是 SType

public enum SType
{
    REQUISITION,
    PURCHASE,   
    FINISHED,   
    // others
    RETURN;
}
Run Code Online (Sandbox Code Playgroud)

查询:

String querySt = "select s.slipType.slipNameSt,s.slipNumberSt, s.idNr from Slip s 
where s.slipType.sType IN (:enumTypeListt)";

em.createQuery(querySt).setParameter("enumTypeList", EnumSet.of(SType.REQUISITION, 
                                                                SType.PURCHASE));
Run Code Online (Sandbox Code Playgroud)

java enums jpql

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

Code Golf:Frobenius Number

编写计算给定正数集的Frobenius数的最短程序.Frobenius数是最大数,不能写为集合中数字的正倍数之和.

例如:对于该组中的鸡McNugget的TM尺寸[6,9,20]弗罗贝尼乌斯数为43,因为没有无解的方程*6 + B*9 + C*20 = 43(用A,B ,c> = 0),43是具有此属性的最大值.

可以假设给定集合存在Frobenius数.如果不是这种情况(例如对于[2,4]),则不会出现特定的行为.

参考文献:

[编辑]我决定接受GolfScript版本.虽然MATHEMATICA版本可能被认为是"技术上正确的",但它显然会带来竞争的乐趣.也就是说,我也对其他解决方案印象深刻,特别是Ruby(对于通用语言来说非常简短).

language-agnostic code-golf rosetta-stone

12
推荐指数
4
解决办法
1628
查看次数