web-dev-qa-db-ja.com

シーケンス機能使用中の「ORA-00928:SELECTキーワードがありません」エラー

申し訳ありませんが、SQLPlusを初めて使用します。

したがって、ここにioweというテーブルがあり、4つのレコードがプリロードされています。これはどのように見えるかです:

 NAMEAMOUNTシリアル番号
 ---------- ---------- ------------- 
 Praveen 20500 1 
 Roshan 5000 2 
 Rohit 5000 3 
 Shashi 8000 4 

これらの4つのレコードを入力するまで、SQLのシーケンス関数については知りませんでした。だから私はそれをこの表に暗示してみました。新しいレコードを入力したかったのですが、名前に "[〜#〜] xxx [〜#〜]"、金額に5と言い、シーケンスコマンドを使用してi "Serial Number"を自動インクリメントする必要がありました。

したがって、私はiowesqnというシーケンスを作成しました。これは、次のような場合ですselect * from user_sequences

 SEQUENCE_NAME MIN_VALUE MAX_VALUE INCREMENT_BY CO CACHE_SIZE LAST_NUMBER 
 ------------------------------ --- ------- ---------- ------------ --- ---------- --------- -
 SQN 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ずつ細かく増加します。ただし、"insert into iowe( '&name'、 '&amount'、" Serial Number ")value(iowesqn.nextval));"を試してみると、名前と金額を尋ねられますしかし、そのとき(金額が入力された後)、エラーがスローされます。 "ORA-00928:SELECTキーワードがありません"と表示されます。

これは、入力した金額の後に表示されるすべてのものです。

古い1:iowe( '&name'、 '&amount'、 "シリアル番号")に挿入value(iowesqn.nextval))新しい1:iowe( 'ret'、 'ert'、 "シリアル番号"に挿入)value(iowesqn.nextval))ioweに挿入( 'ret'、 'ert'、 "Serial Number")value(iowesqn.nextval))* 1行目のエラー:ORA-00928:SELECTキーワードがありません

私が間違っていること(または(非常にありそうもない))を教えてください。

前もって感謝します。

5

あなたの発言は間違っています。そのような単純な。この固定ステートメントで:

iowe(name、amount、 "Serial Number")の値( 'XXX'、500、iowesqn.nextval)に挿入します

おそらく、値をフィールドではなく変数に置き換えるつもりでしたか?

iowe(name、amount、 "Serial Number")に挿入values( '&name'、&amount、iowesqn.nextval)

3
nvoigt

他のユーザーは、valueの代わりにvaluesを使用している可能性があります。これは、この問題に直面する可能性がある別のケースです。

2

これは、列リストについて言及し忘れたためです。

table_name(1、 'alskdjflasf')に挿入します

table_name(id、name)values(1.'lakjsdflasdf ')へのこの挿入のようになります。

0
shashigura

「SELECTキーワードがありません」という別のケースを見つけました。次のように、列名を引用符で囲んで挿入しようとしました。

サブスクリプションに挿入( 'SUBSCRIPTION_ID'、 'SUBSCRIPTION_NAME'、 'C​​REATED_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');

0
Steve Stilson