对不起,我是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关键字
请告诉我我的意思(或者(极不可能)是错误的。
提前致谢。
答案 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')