【问题标题】:Deleting Rows via Views in Native Dinamic SQL通过本机动态 SQL 中的视图删除行
【发布时间】:2022-12-21 14:01:12
【问题描述】:

我正在尝试使用过程通过本机动态 sql 中的视图删除行,并面临如下所示的错误。有人可以帮我吗?

cORA-00933:SQL 命令未正确结束 ORA-06512: 在“USER1.DEL_WITH_VIEW”,第 11 行 ORA-06512: 在第 1 行

create or replace procedure del_with_view (my_tab_name2 user_tables.table_name%type,
                                         row_count number)
is 
temp_table user_tables.table_name%type;
sql_query varchar2(1000);
begin
temp_table:=dbms_assert.sql_object_name(my_tab_name2);
sql_query:= 'create or replace view my_view as (
select rowid from '||temp_table||' fetch first '||row_count||' rows only);
delete from '||temp_table||' where rowid in '||'(select rowid from my_view)';
execute immediate sql_query;
dbms_output.put_line(sql_query);
dbms_output.put_line(sql%rowcount||'row deleted');
end;
/

【问题讨论】:

    标签: sql stored-procedures plsql


    【解决方案1】:

    看起来您在 delete 语句中缺少分号。

    将该行替换为

    delete from '||temp_table||' where rowid in '||'(select rowid from my_view);';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2023-01-12
      • 2019-02-11
      • 2011-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多