Sql 在access中输入来自Erwin的代码时出现问题(主要是数据类型)

Sql 在access中输入来自Erwin的代码时出现问题(主要是数据类型),sql,ms-access,erwin,Sql,Ms Access,Erwin,这是一个很基本的问题对不起,我才做了几个星期。我们的任务是在Erwin中生成模型后,在Oracle和Access中创建一个数据库。该模型是在Erwin中创建的,我们直接从Erwin生成SQL代码,输入到Oracle中。现在,我试图修改代码,将其输入Access,将VARCHAR2更改为VARCHAR,将NUMBER更改为INTEGER等。但是,由于一致性错误,我遇到了很多麻烦 这是SQL代码的一部分,有21个类似的表 CREATE TABLE ASSUMPTION ( ASSUMPTIO

这是一个很基本的问题对不起,我才做了几个星期。我们的任务是在Erwin中生成模型后,在Oracle和Access中创建一个数据库。该模型是在Erwin中创建的,我们直接从Erwin生成SQL代码,输入到Oracle中。现在,我试图修改代码,将其输入Access,将VARCHAR2更改为VARCHAR,将NUMBER更改为INTEGER等。但是,由于一致性错误,我遇到了很多麻烦

这是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);
如果人们能指出我的错误所在,我将不胜感激。它始终返回语法错误

此外,还需要在“客户接受框”中输入接受或“是”,以便他们继续访问表单的其余部分。我应该在这个初始假设框中指定吗?是否可以直接在Oracle或Access中打开Erwin文件并打开其中包含的代码,或者自动而不是手动对其进行转换


谢谢。

这里发生了很多事情

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

具有比整数25更大的范围 几乎可以保证跨平台是独一无二的 其次,看起来您正在尝试手动更改生成的Oracle代码。我建议您回到模型中,将目标数据库更改为access,然后为您转发工程访问代码


我希望这对你有帮助,祝你好运。

你认为整数25是什么意思?你认为这对MS Access意味着什么?我假设这意味着与SQL代码类似的事情——你不能输入超过25个数字,在本例中是25个整数,因为我不需要小数。我可以跳过对每个位大小的描述吗?例如,INTEGER25变成INTEGER,VARCHAR50只是VARCHAR?标准SQL中没有INTEGER25这样的东西。在Access中,integer是一个16位的整数,对您来说不够大。我不确定Access的十进制数据类型是否包含足够的数字。为您的帮助干杯,迈克。我正在从代码中删除所有数字规范,并将这样输入Access。您是否正在尝试更改生成的Oracle SQL?