无法在访问中输入Erwin中的代码(主要是数据类型)

时间:2014-12-04 12:58:10

标签: sql ms-access erwin

这是一个非常基本的问题抱歉,我这几周只做了这个。我们的任务是在Erwin中生成模型后在Oracle和Access中创建数据库。该模型已在Erwin中创建,我们直接从Erwin生成SQL代码以在Oracle中输入。现在我正在尝试修改代码以将其输入Access (changing VARCHAR2 to VARCHAR, NUMBER to INTEGER etc)。但是我遇到了一致的错误。

这是SQL代码的一部分(有21个类似的表)

CREATE TABLE ASSUMPTION
(
    ASSUMPTION_ID        NUMBER(25) NOT NULL ,
    COUNTY               VARCHAR2(23) NOT NULL ,
    CLAIM_HISTORY        VARCHAR2(200) NULL ,
    ADDITIONAL_PROPERTY  VARCHAR2(200) NULL ,
    REBUILD_COST         DECIMAL(6,2) NULL ,
    MAIN_RESIDENCE       VARCHAR2(3) NOT NULL ,
    CURRENT_INSURANCE_COVER VARCHAR2(200) NULL ,
    CRIMINAL_HISTORY     VARCHAR2(200) NULL ,
    BUSINESS_USE         VARCHAR2(3) NOT NULL ,
    CUSTOMER_ACCEPTANCE  VARCHAR2(3) NOT NULL ,
    QUOTE_ID             NUMBER(25) NOT NULL 
);



ALTER TABLE ASSUMPTION
    ADD CONSTRAINT  XPKASSUPMTION PRIMARY KEY (ASSUMPTION_ID,QUOTE_ID);

我所做的更改就像这样做了

CREATE TABLE ASSUMPTION
(
    ASSUMPTION_ID        INTEGER(25) NOT NULL ,
    COUNTY               VARCHAR(23) NOT NULL ,
    CLAIM_HISTORY        VARCHAR(200) NULL ,
    ADDITIONAL_PROPERTY  VARCHAR(200) NULL ,
    REBUILD_COST         CURRENCY NULL ,
    MAIN_RESIDENCE       VARCHAR(3) NOT NULL ,
    CURRENT_INSURANCE_COVER VARCHAR(200) NULL ,
    CRIMINAL_HISTORY     VARCHAR(200) NULL ,
    BUSINESS_USE         VARCHAR(3) NOT NULL ,
    CUSTOMER_ACCEPTANCE  VARCHAR(3) NOT NULL ,
    QUOTE_ID             INTEGER(25) NOT NULL 
);

后跟相同的

ALTER TABLE ASSUMPTION
    ADD CONSTRAINT  XPKASSUPMTION PRIMARY KEY (ASSUMPTION_ID,QUOTE_ID);
如果人们可以指出我哪里出错了,我真的很感激。它始终返回语法错误。

还需要在'customer_acceptance框'中要求接受或'是',以便他们继续访问表格的其余部分。我是否应该尝试在此初始假设框中指定?是否可以只获取Erwin文件并直接在Oracle或Access中打开它包含的代码,或者自动转换它而不是手工转换?

感谢。

1 个答案:

答案 0 :(得分:0)

这里有很多事情发生。

首先是整数(25)字段。这些是id字段,因此可能是非易失性的。我建议您使用仅限数字的域限制将这些字段更改为文本(25)。这样您就可以避免不同平台之间的可比性问题。一个附带问题,它真的需要这么大吗?如果是,您可能需要考虑使用UUID。这将为您提供16位文本值:

  • 范围更大,然后是整数(25)
  • 几乎可以保证跨平台的独特性

其次,看起来您正在尝试手动更改生成的Oracle代码。我建议您返回模型,更改要访问的目标数据库,然后为您设计访问代码。

我希望这会有所帮助并祝你好运。