9

对不起,我是 SQLPlus 的新手!

所以在这里,我有一个名为iowe的表,我预先加载了四条记录。这是它的样子:

名称 数量 序列号
---------- ---------- -------------
普拉文 20500 1
肉山 5000 2
罗希特 5000 3
沙市8000 4

直到输入这四条记录,我才知道SQL中的序列函数。所以我试着把它暗示到这张桌子上。我想输入一条新记录,名称为“ XXX ”,金额为500,并使用序列命令,我希望“序列号”自动递增。

所以我创建了一个名为iowesqn的序列,当我从 user_sequences 中选择 *时,它看起来像这样:

SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CO CACHE_SIZE LAST_NUMBER
------------------ ---------- ---------- ------------ - - ---------- ------------
中队 1 5 2 NN 0 3
IOWESQN 1 1.0000E+27 1 NN 0 7

请忽略序列SQN

要插入序列IOWESQN,我使用了以下命令:“insert into iowe(name, amount, "Serial Number") values('XXX', 500, iowesqn.nextval)"

一切正常。序列号列在每个条目上都以 1 递增。但是,当我尝试“插入 iowe ('&name', '&amount', "Serial Number") value(iowesqn.nextval));”时 ,它会询问我的姓名和金额,但就在那时(输入金额后),它会引发错误。它显示:"ORA-00928: missing SELECT keyword"

这是在输入量之后出现的全部内容:

旧1:插入iowe('&name','&amount',“序列号”)值(iowesqn.nextval))新1:插入iowe('ret','ert',“序列号”)值(iowesqn .nextval)) 插入 iowe ('ret', 'ert', "Serial Number") value(iowesqn.nextval)) * 第 1 行出现错误:ORA-00928:缺少 SELECT 关键字

请告诉我我在(或(极不可能)它是)做错了什么。

提前致谢。

4

4 回答 4

5

你的说法是错误的。就那么简单。使用此固定语句:

插入 iowe(name, amount, "Serial Number") values('XXX', 500, iowesqn.nextval)

您可能打算用变量代替您的值,而不是您的字段?

插入 iowe(name, amount, "Serial Number") values('&name', &amount, iowesqn.nextval)

于 2013-04-04T14:00:51.397 回答
4

我刚刚发现了另一种情况,我得到“缺少 SELECT 关键字”。我尝试在引号中插入列名,如下所示:

插入订阅('SUBSCRIPTION_ID','SUBSCRIPTION_NAME','CREATED_DATE')值('558768','','20-JAN-20 10.37.47.901000000 PM');

一旦我删除了列名周围的引号,它就起作用了:

插入订阅 (SUBSCRIPTION_ID,SUBSCRIPTION_NAME,CREATED_DATE) 值 ('558768','','20-JAN-20 10.37.47.901000000 PM');

于 2020-01-23T22:43:52.763 回答
2

其他用户可能一直在使用value而不是values. 这是您可能面临此问题的另一种情况。

于 2016-05-22T20:16:53.643 回答
0

这是因为您错过了提及列列表

插入表名(1,'alskdjflasf')

应该像这样插入 table_name (id,name)values(1.'lakjsdflasdf')

于 2017-12-19T18:22:31.350 回答