如何完成从SQL Server到Oracle的转换?

如何完成从SQL Server到Oracle的转换?,sql,sql-server,oracle,Sql,Sql Server,Oracle,我有一个部分翻译的SQL脚本和一些类似的脚本,看起来像这样: CREATE TABLE STATUSES ( STATUS_ID CHAR(1) NOT NULL, DESCRIPTION VARCHAR2(50) NOT NULL, EVENT NUMBER(3) NOT NULL, RESOLUTION NUMBER(3) NOT NULL, CONSTRAINT PK_STATUSES PRI

我有一个部分翻译的SQL脚本和一些类似的脚本,看起来像这样:

    CREATE TABLE STATUSES
    ( STATUS_ID     CHAR(1) NOT NULL,
      DESCRIPTION   VARCHAR2(50) NOT NULL,
      EVENT         NUMBER(3) NOT NULL,
      RESOLUTION    NUMBER(3) NOT NULL,
      CONSTRAINT PK_STATUSES PRIMARY KEY CLUSTERED (STATUS_ID ASC));

它们是SQL Server中定义的表,我希望将它们转换为Oracle中使用的表,但是我不确定如何处理约束的集群部分和主键的ASC属性,我已经看过一些文章,但它们没有任何帮助。有谁能帮我完成这个,或者给我指一篇有帮助的文章吗?

别理他们。您可以同时删除
clustered
asc
,这两个数据库中的表应该都可以

我倾向于只使用
主键
关键字,而不是显式的
约束

CREATE TABLE STATUSES (
  STATUS_ID     CHAR(1) NOT NULL PRIMARY KEY,
  DESCRIPTION   VARCHAR2(50) NOT NULL,
  EVENT         NUMBER(3) NOT NULL,
  RESOLUTION    NUMBER(3) NOT NULL
);

您的表太小,不必担心聚集索引。对于这样一个小表,是否有任何索引是有用的,这是值得怀疑的。

好的,我还有两个大约20列的表,有一个5列的复合键,所有的表都带有ASC。我该怎么做?@JBMac。不要担心
asc
“只使用主键关键字,而不是显式约束”——这将为PK生成一个非常难看的名称。我发现一条错误消息“违反了唯一约束(PK_状态)”比“违反了唯一约束(SYS_C00109075)”更容易理解,尤其是当您需要分析日志文件时。我允许的唯一未命名的约束是NOTNULL约束,它无论如何都不需要命名。@一个没有名字的马。有趣。我总是命名
check
约束,有时还会命名外键约束。从不使用主键约束,因为我几乎从不偶然违反它们(可能是因为我几乎总是使用自动递增主键)。