【问题标题】:SQL Server to Oracle DB - Use a SQL Server create table script in Oracle DBSQL Server 到 Oracle DB - 在 Oracle DB 中使用 SQL Server 创建表脚本
【发布时间】:2020-03-22 06:57:59
【问题描述】:

我正在使用 Oracle SQL Developer Editor Scratch 翻译脚本,但它不起作用。

这是我从 SQL Server 创建的原始脚本:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [RDVE].[AspNetUsers]
(
    [Id] [NVARCHAR](128) NOT NULL,
    [Email] [NVARCHAR](256) NULL,
    [EmailConfirmed] [BIT] NOT NULL,
    [PasswordHash] [NVARCHAR](MAX) NULL,
    [SecurityStamp] [NVARCHAR](MAX) NULL,
    [PhoneNumber] [NVARCHAR](MAX) NULL,
    [PhoneNumberConfirmed] [BIT] NOT NULL,
    [TwoFactorEnabled] [BIT] NOT NULL,
    [LockoutEndDateUtc] [DATETIME] NULL,
    [LockoutEnabled] [BIT] NOT NULL,
    [AccessFailedCount] [INT] NOT NULL,
    [UserName] [NVARCHAR](256) NOT NULL,
    [Setor] [NVARCHAR](50) NULL,

    CONSTRAINT [PK_dbo.AspNetUsers] 
        PRIMARY KEY CLUSTERED ([Id] ASC)
                    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
                          IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
                          ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

这是oracle sql developer迁移工具生成的脚本。

ALTER SESSION SET CURRENT_SCHEMA=RDVE;

/*TODO:SQLDEV*/ SET ANSI_NULLS ON /*END:SQLDEV*/

/*TODO:SQLDEV*/ SET QUOTED_IDENTIFIER ON /*END:SQLDEV*/

CREATE TABLE AspNetUsers
(
  Id NVARCHAR2(128) NOT NULL,
  Email NVARCHAR2(256) ,
  EmailConfirmed NUMBER(1,0) NOT NULL,
  PasswordHash NVARCHAR2(2000) ,
  SecurityStamp NVARCHAR2(2000) ,
  PhoneNumber NVARCHAR2(2000) ,
  PhoneNumberConfirmed NUMBER(1,0) NOT NULL,
  TwoFactorEnabled NUMBER(1,0) NOT NULL,
  LockoutEndDateUtc DATE ,
  LockoutEnabled NUMBER(1,0) NOT NULL,
  AccessFailedCount NUMBER(10,0) NOT NULL,
  UserName NVARCHAR2(256) NOT NULL,
  Setor NVARCHAR2(50) ,
  CONSTRAINT PK_RDVE.AspNetUsers ,PRIMARY KEY( Id )
);

这就是输出:

SP2-0158: Start of unknown SET option "ansi_nulls ..."
SP2-0158: Start of unknown SET option "quoted_ide ..."
Error from line: 7 on command -

如果删除设置的选项,我会收到以下错误

行错误:命令 4 -
错误的关系 -
ORA-00904: : 标识符无效
00904. 00000 - “%s:无效标识符”
*原因:
*行动:

【问题讨论】:

标签: sql-server oracle oracle-sqldeveloper


【解决方案1】:
/*TODO:SQLDEV*/ SET ANSI_NULLS ON /*END:SQLDEV*/

/*TODO:SQLDEV*/ SET QUOTED_IDENTIFIER ON /*END:SQLDEV*/

TODO - 意味着我们的翻译不知道如何处理这行代码。您需要弄清楚是否需要将其更改为。当然,它不会按原样运行。

【讨论】:

    【解决方案2】:

    这个:

    CONSTRAINT PK_RDVE.AspNetUsers ,PRIMARY KEY( Id )
    

    替换为:

    CONSTRAINT PK_RDVE_AspNetUsers PRIMARY KEY( Id )
    

    并删除设置选项。

    【讨论】:

    • Thx,在 AspNetUsers 和逗号之前的“点”是错误,问题已解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2020-03-27
    • 2014-07-08
    • 2013-07-21
    • 2015-08-14
    • 2018-06-02
    相关资源
    最近更新 更多