使用序列号插入 select
Use sequence number with insert select
我正在尝试执行以下语句:
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE
(
src_table,
thread_id,
creation_date
)
SELECT DISTINCT
source_table AS src_table,
num_thread_seq.nextval AS THREAD_ID,
create_date AS CREATION_DATE
FROM mySchema.nb_pricelist_ctrl
我需要 THREAD_ID
字段是从 1 到 X 的数字,其中 X 在运行时定义,因此我使用了从 1 到 X 的序列(我使用的是 ODI)。
但是,我一直遇到 ORA-02287 序列不允许错误...
我已经阅读了 this 个问题,但我仍然不知道如何解决我的问题。
我一直在搜索,但我没有找到解决方案的运气。请帮助
来自 OraFaq:
以下是不能使用序列的情况:
For a SELECT Statement:
- In a WHERE clause
- In a GROUP BY or ORDER BY clause
- In a DISTINCT clause
- Along with a UNION or INTERSECT or MINUS
- In a sub-query
关键字distinct
与序列查询不兼容。如果你真的需要它,试试
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE (
src_table,
thread_id,
creation_date)
select
a.src_table,
num_thread_seq.nextval,
a.create_date
from
(select distinct src_table, create_date from mySchema.nb_pricelist_ctrl) a
试试这个
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE
(
src_table,
thread_id,
creation_date
)
SELECT DISTINCT
source_table AS src_table,
num_thread_seq.nextval() AS THREAD_ID,
create_date AS CREATION_DATE
FROM mySchema.nb_pricelist_ctrl
我正在尝试执行以下语句:
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE
(
src_table,
thread_id,
creation_date
)
SELECT DISTINCT
source_table AS src_table,
num_thread_seq.nextval AS THREAD_ID,
create_date AS CREATION_DATE
FROM mySchema.nb_pricelist_ctrl
我需要 THREAD_ID
字段是从 1 到 X 的数字,其中 X 在运行时定义,因此我使用了从 1 到 X 的序列(我使用的是 ODI)。
但是,我一直遇到 ORA-02287 序列不允许错误...
我已经阅读了 this 个问题,但我仍然不知道如何解决我的问题。 我一直在搜索,但我没有找到解决方案的运气。请帮助
来自 OraFaq:
以下是不能使用序列的情况:
For a SELECT Statement:
- In a WHERE clause
- In a GROUP BY or ORDER BY clause
- In a DISTINCT clause
- Along with a UNION or INTERSECT or MINUS
- In a sub-query
关键字distinct
与序列查询不兼容。如果你真的需要它,试试
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE (
src_table,
thread_id,
creation_date)
select
a.src_table,
num_thread_seq.nextval,
a.create_date
from
(select distinct src_table, create_date from mySchema.nb_pricelist_ctrl) a
试试这个
INSERT INTO mySchema.ODI_PRICELIST_THREAD_TABLE
(
src_table,
thread_id,
creation_date
)
SELECT DISTINCT
source_table AS src_table,
num_thread_seq.nextval() AS THREAD_ID,
create_date AS CREATION_DATE
FROM mySchema.nb_pricelist_ctrl