【发布时间】:2015-07-08 14:43:59
【问题描述】:
我正在尝试在需要使用序列和不同子句的地方执行选择插入。
我知道我们不能使用具有 distinct 的序列,所以我在 FROM 中嵌套了一个子查询,如下所示:
INSERT INTO SchemaName.XXSON_ST_B2B_CTR_PRICING
(SEQ_NO,SEEB_KEY,MESSAGE_ID,MESSAGE_TYPE,CREATE_DTIME,CHANGE_DTIME,STATUS)
SELECT
XXSON.XXSON_B2B_CTR_PRICING_SEQ.NEXTVAL AS SEQ_NO,
'SESS_NO' AS SEEB_KEY,
srp.ITEM AS MESSAGE_ID,
'MESSAGE_TYPE' AS MESSAGE_TYPE,
sysdate AS CREATE_DTIME,
sysdate AS CHANGE_DTIME,
'I' AS STATUS
FROM
(SELECT distinct srp.ITEM
FROM SchemaName.NB_PRICELIST_CTRL pctrl,
SchemaName.NB_PRICELIST_SRP srp
WHERE STATUS = 'W'
AND SOURCE_TABLE = 'NB_PRICELIST_SRP');
但是,有了这个,我无法将 srp.ITEM 作为 MESSAGE_ID 插入,因为我有一个无效的标识符 (ORA-00904),这并不奇怪。有什么解决方法可以让我正确插入吗?
【问题讨论】:
-
如何在没有样本数据的情况下重现您的问题?请提供创建和插入语句。至少一个 SQL Fiddle。
标签: sql oracle select insert distinct