【问题标题】:how to drop table in database ? and how to create view table? [closed]如何在数据库中删除表?以及如何创建视图表? [关闭]
【发布时间】:2021-11-03 09:29:31
【问题描述】:

如何使所有表中的视图已经存在于数据库中,这是一项艰巨的任务,要逐个捕获表并将创建视图 XXXX 作为 select * from Table_name 。我发现光标可以做到这一点

,我不知道如何在数据库中创建视图表?

放入数据库,查看数据库中的表。

【问题讨论】:

  • 你到底要什么?实在是无法理解,。您想在一个模式中为所有表创建视图吗?什么是数据库中的下降?什么是视图表?
  • 而正是为什么您认为需要“从数据库中已存在的所有表”创建视图?

标签: database oracle


【解决方案1】:

真的很难理解你的要求。所以假设

  • 您想为所有名称为 V_>
  • 的表创建视图
  • 仅适用于一种模式
  • 用户/模式拥有create view的权限
  • 视图是一种逻辑结构,基本上是嵌入在对象中的查询,而不是表,也不存在视图表之类的东西。
  • 删除表是由同名命令完成的:drop table <<owner>>.<<table_name>>

虽然我不太明白为什么有人愿意这样做,但使用 PLSQL 相当容易

declare
v_owner varchar2(40) := 'MY_SCHEMA' 
v_view  varchar2(128);
v_sql   varchar2(4000);
begin
for h in ( select table_name from all_tables where owner = v_owner order by table_name desc )
loop
    v_view := 'V_'||h.table_name ;
    v_sql := ' create or replace force view '||v_view||' as select * from '||h.table_name||' ';
    execute immediate v_sql ; 
end loop;
end;
/

【讨论】:

  • 对;除了你写的那个例外几乎没用。
  • @Littlefoot,你像往常一样是对的。我认为这是我的习惯;)
猜你喜欢
  • 1970-01-01
  • 2020-08-24
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2011-11-14
  • 2013-02-24
相关资源
最近更新 更多