2016-07-14 9 views
-2

ORA-06550&PL/SQLブロック内のdelete文で00904

ORA-06550: line 9, column 9:

PL/SQL: ORA-00904: "B_COL": invalid identifier

私は場所に許可されていないですpl/sqlブロック内のステートメントを削除しますか?列「B_COL」は確実に存在します。

私はこれが何であるか、他の場所で見えるべきか何か考えていますか?私はそれに固執しています。どんな種類の入力も高く評価されます。ありがとう。

+4

pl/sqlブロックの外部でdelete文を正しく実行できますか。 'B_COL'列が存在することを示すために' B'表を記述できますか? – Utsav

+0

私は表示することはできませんが、申し訳ありませんので、説明はありませんが、存在する実際のテーブルのスキーマからの遊びです。文はPL/SQLブロックの外部で正しく実行されます。 – NemanjaT

+4

いいえ、存在しません。 SOに関するほとんどの質問は、OPの前提が何らかの形で間違っているため正確に尋ねられます。実際のテーブルを表示できない場合は、エラーを再現するために使用できるダミーテーブルを備えた完全ではあるが最小限のスクリプトを投稿してください。完全で最小限のスクリプトがどのようなものかについてのWilliam Robertsonの答えを見てください。それ以外の場合はお手伝いできません。 – sstan

答えて

3

私のために働きます。

create table a (b_id integer); 
create table b (id integer, b_col integer); 

begin 
    delete from a 
    where b_id in (
    select id 
    from b 
    where b_col is null 
); 
end; 
/

実際のコードには何か間違いがあります。

+0

yep、この場合は "B_COL"という列が追加された増分インストールが適用される前に、クリーンアップが制約に追加されました。混乱させて申し訳ありません。 – NemanjaT

1

ブロックが実行されます。メッセージは、ここに記載された列が存在しないか、または別の名前で存在する場合にのみ到着します。もう一度テーブルの説明を確認してください。

関連する問題