网站首页 > 文章中心 > 其它

oracle如何显示空表

作者:小编 更新时间:2023-08-26 08:34:36 浏览量:321人看过

如何在ORACLE中查询某一用户下所有的空表

先分析表

select 'analyze table '||table_name||' compute statistics;' from user_tables;

把查询结果依次执行

把所有表分析一遍

然后user_tables中就会刷新表的信息

select * from user_tables where num_rows=0;

查出行数为0的表信息.

oracle数据库查询哪张表是空表

可以查数据字典,select * from user_tables where num_rows=0.不过最好对table_name加一些限制避免行数过多.

oracle怎么导出空表

导出一个完整数据库

exp system/manager file=bible_db log=dible_db full=y

导出数据库定义而不导出数据

exp system/manager file=bible_db log=dible_db full=y rows=n

希望能帮到你

你的情况主要是没有把FULL 子句设置为Y 就可以了...

如何查询oracle是否导出空表

①.、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出.

在sqlplus中,执行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

该值设置后只对后面新增的表产生作用,对之前建立的空表不起作用.

使用ALLOCATE EXTENT可以为数据库对象分配Extent.其语法如下:

-----------

ALLOCATE EXTENT { SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer }

可以针对数据表、索引、物化视图等手工分配Extent.

ALLOCATE EXTENT使用样例:

ALLOCATE EXTENT

ALLOCATE EXTENT(SIZE integer [K | M])

ALLOCATE EXTENT(DATAFILE 'filename')

ALLOCATE EXTENT(INSTANCE integer)

ALLOCATE EXTENT(SIZE integer [K | M] DATAFILE 'filename')

ALLOCATE EXTENT(SIZE integer [K | M] INSTANCE integer)

针对数据表操作的完整语法如下:

ALTER TABLE [schema.]table_name ALLOCATE EXTENT [({ SIZE integer [K | M] | DATAFILE 'filename' | INSTANCE integer})]

故,需要构建如下样子简单的SQL命令:

alter table aTabelName allocate extent

查询当前用户下的所有空表(一个用户最好对应一个默认表空间).命令如下:

SQLselect table_name from user_tables where NUM_ROWS=0;

根据上述查询,可以构建针对空表分配空间的命令语句,如下:

SQLSelect 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

批量输出上述生成的SQL语句,建立C:\createsql.sql,其内容如下:

set heading off;

set echo off;

set feedback off;

set termout on;

spool C:\allocate.sql;

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

spool off;

执行C:\createsql.sql,命令如下:

SQL@ C:\createsql.sql;

执行完毕后,得到C:\allocate.sql文件.

打开该文件会看到,已经得到对所有空表分配空间的命令SQL语句.

执行C:\allocate.sql,命令如下:

SQL@ C:\allocate.sql;

执行完毕,表已更改.

另外:Oracle11g中,对密码是大小写敏感的,即密码中的字母是区分大小写的.

在Oracle10g中及以前,密码中的字母大小写无所谓.

ORACLE查询空表

MSSQL不知道

oracle在plsql里执行如下代码:

DECLARE

v_table tabs.table_name%TYPE;

v_q NUMBER;

CURSOR c1 IS

SELECT table_name tn FROM tabs;

TYPE c IS REF CURSOR;

BEGIN

DBMS_OUTPUT.PUT_LINE('以下为空数据表的表名:');

FOR r1 IN c1 LOOP

v_table :=r1.tn;

v_sql :='SELECT COUNT(*) q FROM '||v_table;

LOOP

IF v_q=0 THEN

DBMS_OUTPUT.PUT_LINE(v_table);

END IF;

END LOOP;

EXCEPTION

WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error occurred');

END;

然后点output,显示的就是空表

以上就是土嘎嘎小编为大家整理的oracle如何显示空表相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章