0

私は現在insert文を書いていますが、「ORA-00923: From keyword not found where expected.これを達成できる方法はありますか?ありがとうございます。文は次のとおりです:

Insert into seda_owner.seda_lookup(table_name,description,sequence,value)
Select 'DEFAULT_CATE_CHG_ITEMS_DOCS','Software Requirements Specification', '1', 
  (select **value** from seda_owner.seda_document a 
   join seda_owner.seda_lookup b 
    on b.value = a.guid and description = 'Software Requirements Specification');

私がやろうとしているのは、3 つの文字列 table_name、description、sequence と 1 つの変数値をテーブル seda_lookup に渡すことです。

4

2 に答える 2

1

Oracle では、select ステートメントには常に が必要from tableNameです。クエリの外側の選択には、そのような from 句がありません。

Insert into seda_owner.seda_lookup(table_name,description,sequence,value)
Select 'DEFAULT_CATE_CHG_ITEMS_DOCS','Software Requirements Specification', '1', 
  (select **value** from seda_owner.seda_document a 
   inner join seda_owner.seda_lookup b 
    on b.value = a.guid and description = 'Software Requirements Specification')
from dual;

さらに良い:

Insert into seda_owner.seda_lookup(table_name,description,sequence,value)
Select 'DEFAULT_CATE_CHG_ITEMS_DOCS','Software Requirements Specification', 
    '1', **value** 
from seda_owner.seda_document a 
inner join seda_owner.seda_lookup b 
    on b.value = a.guid and description = 'Software Requirements Specification'

最初の解決策では、サブクエリによって返される行が 1 つだけ必要です。

2 番目のソリューションは、内部結合によって定義された数のレコードを挿入します。

于 2012-07-17T20:28:21.613 に答える
0
  1. の周りのアスタリスクはコードの一部ですか? それとも、その単語を太字にしようとしただけですか?
  2. ネストされた選択が複数の行を返している可能性があります
  3. はb だけですか? selectで修飾しませんが、結合基準で修飾します (b.value)
于 2012-07-17T18:42:31.737 に答える