ORA-06550& 00904关于pl / sql块内的delete语句

时间:2016-07-14 11:24:53

标签: oracle plsql oracle11g

一旦我运行以下块:

BEGIN
  dbms_output.enable;
  dbms_output.put_line('INFO: Calling stack');

  delete from A
  where B_ID in (
    select ID
    from B
    where B_COL is null
  );
END;
/

我总是收到以下错误:

  

ORA-06550:第9行,第9栏:

     

PL / SQL:ORA-00904:“B_COL”:标识符无效

我不允许在pl / sql块中放置删除语句吗? “B_COL”栏肯定存在。

知道这可能是什么,或者我应该在其他地方看看?我坚持下去了。任何形式的投入都不仅仅是值得赞赏的。感谢。

2 个答案:

答案 0 :(得分: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;
/

您的实际代码中肯定存在其他问题。

答案 1 :(得分:1)

该块应该运行。该消息只会在此处提到的列不存在或存在某些不同名称时到达。请再次查看表格说明。