这是一个相当基本的问题,抱歉,我只是这样做了几个星期。我们的任务是在Erwin生成我们的模型后,在Oracle和Access中创建一个数据库。该模型已在Erwin中创建,我们直接从Erwin生成SQL代码以在Oracle中输入。现在我试图修改代码,将其输入到Access (changing VARCHAR2 to VARCHAR, NUMBER to INTEGER etc)
中。然而,我遇到了一致性错误带来的很多麻烦。从Erwin输入代码时遇到的问题(主要是数据类型)
下面是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中打开它包含的代码,或者自动而不是手动转换它?
谢谢。
你认为整数(25)是什么意思?你认为这对MS Access意味着什么? – 2014-12-04 13:44:33
我认为它的意思与SQL代码类似 - 你不能输入超过25个数字,在这种情况下,25个整数,因为我不需要小数。我可以跳过每一位大小的描述 - 即INTEGER(25)变成INTEGER和VARCHAR(50),只是VARCHAR? – Maki 2014-12-04 13:50:26
在标准SQL中没有'integer(25)'这样的东西。在Access中,'integer'是一个16位整数,对于你来说不够大。我不确定Access的'decimal'数据类型是否包含足够的数字。 – 2014-12-04 14:38:08