[英]Missing expression Error with Insert Select query in Oracle SQL
我在使用插入選擇查詢的 Oracle SQL 中遇到了這個錯誤,而不是來自 SQL 查詢的錯誤是:
insert into GroupScenarioAction (ID, ID_UUID, GPSCENARIO_UUID, ACTION, VERSION)
(select DEFAULT , '0', ACTION.ID_UUID, '5310AFAA......', '1', ACTION_ID, '0'
from ACTION where ACTION.id not in (select ACTION FROM GroupScenarioAction where
GPSCENARIO = '1'));
錯誤是 ORA-00936: 缺少表達式位置 129
很難提供幫助,因為
insert
語句本身)使用的列在您發布其描述的任何表中都不存在
insert
插入到GroupScenarioAction
,但那里沒有這樣的表; 也許是goroohscenarioaction
? 或者, action
表中沒有action_id
列select
語句包含7列; 引發ORA-00913: too many values
錯誤,你甚至沒有遇到缺失的表達式錯誤很快,就好像你想盡一切努力阻止我們幫助你。
你發表的評論之一說
這是主鍵,那么這些值應該來自哪里?
這是default
關鍵字
insert into GroupScenarioAction (ID, ...)
(select DEFAULT, ...
-------
this
看起來ID
列是作為身份列創建的,其值是自動生成的(即 Oracle 會處理它),這也意味着您使用的是 Oracle 12c 或更高版本(較低版本中沒有這樣的選項)。 另一方面, create table goroohscenarioaction
語句並沒有提出類似的建議。
無論如何:如果你做對了,它就會起作用。 我創建了兩個具有最小列集的示例表,只是為了使insert
工作。 另外,由於我使用的是 11gXE(它不支持標識列,我插入了一個序列值,基本上,它是標識列在后台使用的):
SQL> create table groupscenarioaction
2 (id number,
3 id_uuid raw(255),
4 gpscenario_uuid raw(255),
5 action number,
6 version number
7 );
Table created.
SQL> create table action
2 (id_uuid raw(255),
3 id number
4 );
Table created.
SQL> create sequence seq;
Sequence created.
插入你張貼的; 我注釋掉了不存在或多余的列。 它有效; 但是,由於我的表是空的,因此沒有插入任何內容,但它不會引發任何錯誤:
SQL> insert into GroupScenarioAction
2 (ID, ID_UUID, GPSCENARIO_UUID, ACTION, VERSION)
3 (select 1 /*DEFAULT*/ , '0', ACTION.ID_UUID, '5310AFAA......', '1' --, id /*ACTION_ID*/, '0'
4 from ACTION
5 where ACTION.id not in (select ACTION FROM GroupScenarioAction
6 where gpscenario_uuid/*GPSCENARIO*/ = '1'));
0 rows created.
美化:
SQL> insert into groupscenarioaction
2 (id, id_uuid, gpscenario_uuid, action, version)
3 (select seq.nextval, '0', a.id_uuid, '5310AFAA......', '1'
4 from action a
5 where a.id not in (select g.action
6 from groupscenarioaction g
7 where g.gpscenario_uuid = '1'));
0 rows created.
SQL>
現在您對幫助您的麻煩有了更多的了解,如果我寫的還不夠,請考慮編輯您發布的原始問題(只需刪除所有錯誤的內容並寫一些我們可以使用的真實內容) .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.