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 的帮助。
我有一个 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 的帮助。