当前位置:文章写作网 >日记 >日记 >oracle中判断表是否存在

oracle中判断表是否存在

2009-06-08 17:57 作者:tshfang 阅读量:22139 推荐23次 | 我要投稿

--在以下视图中存放着表的信息。

--DBA_TABLES,tab,cat,user_tables可能还有其他我不知道的视图。条件中的值是区分大小写的。

select * from DBA_TABLES where owner='LC00019999' and table_name='FANG'

select * from user_tables where table_name='FANG';

--DBA_TABLES,user_tables这两个视图显示的信息最全,因为字段很多就不在此显示了

select * from tab where tname='FANG';

/*

TNAME TABTYPE CLUSTERID

------------------------------ ------- ----------------------

FANG TABLE

1 rows selected

*/

select * from cat where table_name='FANG';

/*

TABLE_NAME TABLE_TYPE

------------------------------ -----------

FANG TABLE

1 rows selected

*/

--这两个视图显示的信息就有点少了。

--不管多少信息都可以根据这些信息判断是否存在表,然后作相应的操作。

--下面的匿名块就是创建表的脚本。

--显示dbms_output.put_line的输出结果。

set serveroutput on

--声明变量,存储系统中存在表的个数。

declare

shuliang INTEGER :=0;

begin

--从DBA_TABLES查询所有者是LC00019999的,是否存在FANG表。将数值放入到变量shuliang。

select count(*) into shuliang FROM DBA_TABLES where owner='LC00019999' and table_name='FANG';

--如果数量是0,系统中不存在此表,那么创建表,并输出创建成功。

if shuliang=0 then

execute immediate 'create table fang (id varchar(20))';

dbms_output.put_line('cuang jian cheng gong');

--可以删除表,或者清除数据,插入数据,等等操作

--再此只是显示一下,此表已经存在。

else

dbms_output.put_line('ci baio cun zai');

end if;

end;

其他人在看啥

    《oracle中判断表是否存在》的评论 (共 0 条)

    • 黑色星期五::)您太专业了!
    • 海茵:有多少人能看懂也能读懂它呢?呵呵,我是不懂,但愿有人会懂,那你的这篇文章就有意义。
    • Guest:工作之余,顺便将一些知识共享!
    • Guest:好像不怎么好用吧 也许用的不对 总之是没查出来存在的表