如何将该Oracle脚本转换为MSSQL?

时间:2019-02-11 05:42:25

标签: sql sql-server tsql

我正在尝试将此Oracle脚本转换为MSSQL:

C_LIFECO  CONSTANT CHAR(1)  := '2';
C_FSUCO   CONSTANT CHAR(1 CHAR) := '9';
C_LIFEBR  CONSTANT CHAR(2 CHAR) := '10';
C_USR      CONSTANT CHAR(10 CHAR) := 'MTLBATCH';
C_JOBNM       CONSTANT CHAR(10 CHAR) := 'L2DATAMIGR';
C_INFO      CONSTANT ROW_NUMBER(8) := 2;
C_SECTION_CNT CONSTANT ROW_NUMBER(10) := 500000;

这是我的尝试,但始终给我语法错误:'1'附近的语法错误。

C_LIFECO  CHAR(1)  := '2';
C_FSUCO    CHAR(1) := '9';
C_LIFEBR   CHAR(2) := '10';
C_USR      CHAR(10) := 'MTLBATCH';
C_JOBNM        CHAR(10) := 'L2DATAMIGR';
C_INFO       BigINT(8) := 2;
C_SECTION_CNT  BigINT(10) := 500000;

2 个答案:

答案 0 :(得分:3)

在SQL Server中,将为声明变量而更改次要语法。 您应该使用下面的一个。

DECLARE
@C_LIFECO CHAR(1)  = '2'
,@C_FSUCO CHAR(1) = '9'
,@C_LIFEBR CHAR(2) = '10'
,@C_USR CHAR(10) = 'MTLBATCH'
,@C_JOBNM CHAR(10) = 'L2DATAMIGR'
,@C_INFO DECIMAL(8,0) = 2
,@C_SECTION_CNT DECIMAL(10,0) = 500000;

答案 1 :(得分:2)

您无需在SQL Server中指定数据大小BigINT(10)/BIGint(8),只需指定BigINT

C_LIFECO  CHAR(1)  := '2';
C_FSUCO    CHAR(1) := '9';
C_LIFEBR   CHAR(2) := '10';
C_USR      CHAR(10) := 'MTLBATCH';
C_JOBNM    CHAR(10) := 'L2DATAMIGR';
C_INFO     BIGINT := 2;
C_SECTION_CNT BIgINT := 500000;