这是一个非常基本的问题抱歉,我这几周只做了这个。我们的任务是在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中打开它包含的代码,或者自动转换它而不是手工转换?
感谢。
答案 0 :(得分:0)
这里有很多事情发生。
首先是整数(25)字段。这些是id字段,因此可能是非易失性的。我建议您使用仅限数字的域限制将这些字段更改为文本(25)。这样您就可以避免不同平台之间的可比性问题。一个附带问题,它真的需要这么大吗?如果是,您可能需要考虑使用UUID。这将为您提供16位文本值:
其次,看起来您正在尝试手动更改生成的Oracle代码。我建议您返回模型,更改要访问的目标数据库,然后为您设计访问代码。
我希望这会有所帮助并祝你好运。