小编Sve*_*sli的帖子

在Oracle中,如何在一对值上声明唯一约束并且它是反向对

我有一个表定义两个变体之间的规则:

CREATE TABLE VARIANTCOMBINATIONRULE
(
  VARRECID0  NUMBER(10)    NOT NULL,
  VARRECID1  NUMBER(10)    NOT NULL,
  RULE       NUMBER
);

ALTER TABLE VARIANTCOMBINATIONRULE ADD (
  CONSTRAINT VARIANTCOMBINATIONRULE_PK
  PRIMARY KEY
  (VARRECID0, VARRECID1));
Run Code Online (Sandbox Code Playgroud)

如何创建不允许"反向对"的约束?我的意思是,如果有变体12和14的记录,则不应允许反向对(14和12)的新记录.

database oracle constraints

6
推荐指数
1
解决办法
535
查看次数

如何确定在unsigned int64中设置了哪个位

我有一个变量vBit,它是一个无符号的int64.我知道只有一个位设置,我需要弄清楚它是哪一个.目前我这样做(在Delphi中):

vPos := -1;
repeat
  vBit := vBit shr 1;
  inc(vPos);
until vBit = 0;
Run Code Online (Sandbox Code Playgroud)

有更快的方法吗?所有位位置都是相同的,因此平均而言算法需要迭代32次.我正在寻找与ands和xors以及诸如此类的优雅技巧.

delphi bit-manipulation

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

如何将存储在表中的SQL语句用作另一个语句的一部分?

在我们的Oracle数据库中,我们有一个名为RULES的表,其中包含一个名为SQLQUERY的字段.该字段是一个存储了SQL语句的varchar.PK是DM_PROJECT.

存储的典型语句可以是

select ACCOUNTNUMBER from CUSTOMERS where ACCUMULATED_SALES > 500000
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

select 
  * 
from 
  customers 
where
     accountnumber like 'A%'
  or salesregion = 999
  or accountnumber in
     (
       <run the query SQLQUERY from RULES where DM_PROJECT=:DM_PROJECT>
     )
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

(次要问题:如果存储的查询使用自己的变量,可以这样做,例如

select ACCOUNTNUMBER from CUSTOMERS where ACCUMULATEDSALES > :LIMIT 
Run Code Online (Sandbox Code Playgroud)

)

sql oracle rules business-rules

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

为什么tfVerticalCenter和tfBottom在TCanvas.TextRect中没有按预期工作?

请考虑以下代码:

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  vRect : TRect;
  vFormat : TTextFormat;
  vStr : string;
begin
  vStr := 'This is some text';
  vRect := rect(10,10,50,130);
  vFormat := [tfCenter,tfVerticalCenter,tfWordBreak];
  PaintBox1.Canvas.Rectangle(vRect);
  PaintBox1.Canvas.TextRect(vRect,vStr,vFormat);
end;
Run Code Online (Sandbox Code Playgroud)

我希望这样的事情

+--------+
|        |
|        |
|This is |
|  some  |
|  text  |
|        |
|        |
+--------+
Run Code Online (Sandbox Code Playgroud)

但我明白了

+--------+
|This is |
|  some  |
|  text  |
|        |
|        |
|        |
|        |
+--------+
Run Code Online (Sandbox Code Playgroud)

tfBottom格式也是如此.水平文本格式(tfLeft,tfRight,tfCenter)按预期工作,但垂直格式不工作.有谁能解释一下?

delphi graphics canvas

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

在Oracle(11.2之前版)中:当使用强制转换(collect(...))时,如何订购结果?

使用演员表(收集(...))时,如何订购结果?

我有一个名为GetStringForTable的函数,定义如下:

FUNCTION GetStringForTable(vTable in TVarCharTable, vDelimeter in varchar default ',') return VarChar2 is
    aResult varchar2(32767);
    i int;
  begin
    if vTable.count = 0 then 
      return '';
    end if;

    for i in 1 .. vTable.Count loop
      if i > 1 then
        aResult := aResult || vDelimeter;
      end if;
      aResult := aResult || vTable(i);
    end loop;
    return aResult;
  end GetStringForTable;
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

select
  name,
  rep.GetStringForTable
      ((
          Select 
            cast(collect(name) as TVarCharTable)  
          from 
            contacts
          where 
            debtoraccount = dt.accountnumber
      )
      ,', ' --Delimiter
      ) "Contacts" 
from …
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00907

5
推荐指数
2
解决办法
4277
查看次数

为什么某些属性超出了监视列表的范围,而其他属性则没有?

首先,对于冗长的代码示例感到抱歉,但我认为需要说明我的问题.

作为调试帮助,我经常在我的对象上引入一个"DebugString"方法,它返回一个简洁的对象摘要.但有时我的对象太复杂而无法在单个字符串中进行最佳表示,因此我使用字符串列表.现在,我想使用Delphi中出色的调试可视化器来监视我的对象.我这样做的方法是引入一个带有getter的属性来重建stringlist.

这种方法有效,但对于我追踪的每一行,属性都超出了范围,因此我必须再次单击观察窗口中的放大镜才能看到该值.为什么是这样?

要重现,请创建一个新的控制台应用程序:

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Classes;

type
  TMyClass = class
  private
    FInternalData : array[0..4] of integer;
    FDebugStringList : TStringList;
    procedure RebuildDebugStringlist;
    function GetDebugStringList: TStringList;
    function GetDebugString : string;
  public
    constructor Create;
    destructor Destroy; override;
    procedure Scramble;
    property DebugStringList : TStringList read GetDebugStringList;
    property DebugString : string read GetDebugString;
  end;

constructor TMyClass.Create;
begin
  FDebugStringList := TStringList.Create;
end;

destructor TMyClass.Destroy;
begin
  FDebugStringList.Free;
  inherited;
end;

function TMyClass.GetDebugString: string;
var
  I : integer;
begin
  Result := 'Object state: '; …
Run Code Online (Sandbox Code Playgroud)

delphi debugging debuggervisualizer delphi-xe

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

使用Toad在Oracle中创建视图时,如何存储格式化的脚本?

这个问题可能是蟾蜍特有的。我不知道Oracle如何存储视图,因此我将解释使用Toad时发生的情况。如果我得到一个特定于Oracle的答案,那就更好了。

我创建了一个相当复杂的视图。为了更加清楚,我已经很好地格式化了代码,并在需要的地方输入了一些注释。当需要更改视图时,可以使用Toad的“描述对象”窗口,在该窗口中可以找到用于重新创建视图的脚本。唯一的问题是我所有的格式都消失了。select关键字前面的注释(但在“ create view xxx as”之后)也将消失。

如果输入此脚本来创建视图:

create or replace view TestViewFormatting as
-- Here I have a long comment explaining the role of the 
-- view and certain things to be aware of if changing it. 
-- Unfortunately this comment will disappear...
select 
  name,          --This comment will be kept
  accountnumber  --This also
from
  debtable
where
  name like 'S%';
Run Code Online (Sandbox Code Playgroud)

当我稍后描述时,Toad将显示它:

DROP VIEW XXX.TESTVIEWFORMATTING;

/* Formatted on 04.07.2012 09:35:45 (QP5 v5.185.11230.41888) */
CREATE OR REPLACE FORCE VIEW XXX.TESTVIEWFORMATTING
(
   NAME,
   ACCOUNTNUMBER …
Run Code Online (Sandbox Code Playgroud)

oracle toad sql-view

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

是否可以在 Word 字段代码中使用 VBA 函数?

我有一个带有一些功能的 Word 文档。我想在公式字段中访问这些函数,但这比预期的要难。

假设我有一个函数定义为

Public Function Area(R As Double) As Double
  Area = 3.14 * R * R
End Function
Run Code Online (Sandbox Code Playgroud)

并且我想在一个领域中使用它,就像这样

{ = Area(RadiusBookmark) }
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我收到一个语法错误。如果我省略参数,像这样

{ = Area }
Run Code Online (Sandbox Code Playgroud)

我收到“未定义书签”错误,这让我相信只有书签可用于公式代码字段。

vba ms-word fieldcodes

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

在Oracle中:如何判断SQL查询是否会在不执行更改的情况下进行更改?

我有一个包含SQL语句的字符串.我想知道查询是否会修改数据或数据库结构,或者它是否只读取数据.有办法做到这一点吗?

更多信息:在我们的应用程序中,我们需要让用户输入SQL查询,主要是作为应用程序报告系统的一部分.应允许这些SQL查询从数据库中读取他们喜欢的任何内容,但不应允许他们修改任何内容.没有更新,删除插入,表格丢弃,约束删除等.

截至目前,我只测试字符串中的第一个单词是否为"select",但这太紧凑而且太不安全.

sql oracle sanitization

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

OpenOffice词典的格式是什么?

有谁知道OpenOffice字典文件的格式是什么?据我所知,每行有一个单词,有些标志可能会告诉我一些关于这个单词的内容.

以英语词典中的几行为例:

absoluteness/S
absorbency/SM
abstract/ShTVDPiGY
absurdness/S
Run Code Online (Sandbox Code Playgroud)

从挪威语词典中,我将使用它:

flatorm/AEG
flatpresse/W
flatseng/ACEG
flatside/ACDEFGHJ
flatskjerm/A
Run Code Online (Sandbox Code Playgroud)

例如"/ AEG"和"/ S"是什么意思?我假设每个字母/标志都有一定的含义,因此"/ AEG"中的A表示与"/ ACDEFGHJ"中的A相同.

我在各地搜索过,但我找不到任何信息.

parsing dictionary file-format spell-checking

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