SQL 服务器查询到 Oracle

SQL Server query into Oracle

我有一个 SQl 服务器查询,如下所示。

DECLARE @TYPE_ID NUMERIC;
DECLARE @ELCFIELD_ID_1 NUMERIC;
DECLARE @ELCFIELD_ID_2 NUMERIC;
DECLARE @ELCFIELD_ID_3 NUMERIC;
DECLARE @ELCFIELD_ID_4 NUMERIC;
DECLARE @ELCFIELD_ID_5 NUMERIC;
DECLARE @ELCCMT_CODE NUMERIC;

BEGIN


SELECT @TYPE_ID =
(SELECT  (MAX(COALESCE(TYPE_ID,0)) + 1) FROM HS_HR_ELC_TYPE); 

SELECT @ELCFIELD_ID_1 =
(SELECT  (MAX(COALESCE(ELCFIELD_ID,0)) + 1) FROM HS_HR_ELC_FIELD); 

SELECT @ELCFIELD_ID_2 =
(SELECT  (MAX(COALESCE(ELCFIELD_ID,0)) + 2) FROM HS_HR_ELC_FIELD);

SELECT @ELCFIELD_ID_3 =
(SELECT  (MAX(COALESCE(ELCFIELD_ID,0)) + 3) FROM HS_HR_ELC_FIELD); 

SELECT @ELCFIELD_ID_4 =
(SELECT  (MAX(COALESCE(ELCFIELD_ID,0)) + 4) FROM HS_HR_ELC_FIELD); 

SELECT @ELCFIELD_ID_5 =
(SELECT  (MAX(COALESCE(ELCFIELD_ID,0)) + 5) FROM HS_HR_ELC_FIELD); 

SELECT @ELCCMT_CODE =
(SELECT  (MAX(COALESCE(ELCCMT_CODE,0)) + 1) FROM HS_HR_ELC_COMMENT_DEF);

我希望它在 Toad 中转换为对 运行 的 Oracle 查询。

到目前为止,我已经找到了一种方法。

DECLARE
 TYPE_ID NUMBER;
 ELCFIELD_ID_1 NUMBER;
 ELCFIELD_ID_2 NUMBER;
 ELCFIELD_ID_3 NUMBER;
 ELCFIELD_ID_4 NUMBER;
 ELCFIELD_ID_5 NUMBER;
 ELCCMT_CODE NUMBER;

BEGIN
 TYPE_ID := 5;
 ELCFIELD_ID_1 := 5;
 ELCFIELD_ID_2 := 5;
 ELCFIELD_ID_3 := 5;
 ELCFIELD_ID_4 := 5;
 ELCFIELD_ID_5 := 5;
 ELCCMT_CODE := 5;
 END;

但我仍然无法将查询分配给如下所示的变量

SELECT @TYPE_ID =
(SELECT  (MAX(COALESCE(TYPE_ID,0)) + 1) FROM HS_HR_ELC_TYPE); 

请帮我做这个。提前谢谢你。

您必须使用如下 INTO 子句(未经测试):

SELECT  (MAX(COALESCE(TYPE_ID,0)) + 1)
INTO    TYPE_ID    
FROM    HS_HR_ELC_TYPE;

试试这个:

SELECT @TYPE_ID = (MAX(COALESCE(TYPE_ID,0)) + 1) FROM HS_HR_ELC_TYPE

我找到了我要找的答案。

SELECT (MAX (COALESCE(TO_NUMBER (TYPE_ID,99),0)) + 1)
INTO    TYPE_ID    
FROM    HS_HR_ELC_TYPE;

谢谢 @Samuel 的帮助。