我正在尝试将此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;
答案 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;