" ORA-00928:缺少SELECT关键字"使用序列功能时出错

时间:2013-04-04 13:56:12

标签: sequence sqlplus ora-00928

对不起,我是SQLPlus的新手!

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

NAME           AMOUNT Serial Number
---------- ---------- -------------
Praveen         20500             1
Roshan           5000             2
Rohit            5000             3
Shashi           8000             4

在我输入这四个记录之前,我不知道SQL中的序列函数。所以我试着暗示它进入这个表。我想输入一条新记录,在名称中输入“ XXX ”,在金额中输入 500 ,并使用sequence命令,我想要“序列号“自动递增。

所以当我从user_sequences中选择* 时,我创建了一个名为 iowesqn 的序列,如下所示:

SEQUENCE_NAME                   MIN_VALUE  MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
------------------------------ ---------- ---------- ------------ - - ---------- -----------
SQN                                     1          5            2 N N          0           3
IOWESQN                                 1 1.0000E+27            1 N N          0           7

请忽略序列SQN

要插入序列 IOWESQN ,我使用了以下命令:“插入iowe(名称,数量,”序列号“) 值('XXX',500,iowesqn.nextval)“

一切正常。列序列号在每个条目上精确增加1。但是,当我尝试“插入iowe('& name','& amount',”序列号“)值(iowesqn.nextval));”时,它会询问我名字,然后金额,然后(在输入金额后),它会抛出一个错误。它显示为:“ORA-00928:缺少SELECT关键字”

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

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

请告诉我我的意思(或者(极不可能)是错误的。

提前致谢。

4 个答案:

答案 0 :(得分:3)

你的陈述是错误的。就那么简单。有了这个固定的陈述:

  

插入iowe(名称,金额,“序列号”)值('XXX',500,iowesqn.nextval)

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

  

插入iowe(名称,金额,“序列号”)值('& name',& amount,iowesqn.nextval)

答案 1 :(得分:2)

其他用户可能使用value代替values。这可能是您遇到此问题的另一种情况。

答案 2 :(得分:1)

我刚刚发现另一种情况,我遇到“缺少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');

答案 3 :(得分:0)

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

插入table_name(1,'alskdjflasf')

它应该是这样的 插入table_name(id,name)值(1.'lakjsdflasdf')