oracle怎么判斷空表 oracle中空值判斷

oracle 用sql如何判斷數(shù)據(jù)庫中的哪些表示空的

這是我在sybase數(shù)據(jù)庫下的操作,供參考

為九江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及九江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、九江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1.選建一個表。

create TABLE D

(NO INT NULL,

NAME CHAR(20) NULL)

2.將庫中所有表中的內(nèi)容和表名做一個插入腳本。

select '

INSERT D

select count(*), "' +name+'" from '+name from sysobjects

where type ='U'

order by name

3. 將查詢結(jié)果新建一頁執(zhí)行

4.無記錄的表

SELECT * FROM D

WHERE NO=0

order by NAME

--OVER!

如何查詢oracle是否導(dǎo)出空表

1、Oracle11g默認(rèn)對空表不分配segment,故使用exp導(dǎo)出Oracle11g數(shù)據(jù)庫時,空表不會導(dǎo)出。

2、設(shè)置deferred_segment_creation 參數(shù)為FALSE后,無論是空表還是非空表,都分配segment。

在sqlplus中,執(zhí)行如下命令:

SQLalter system set deferred_segment_creation=false;

查看:

SQLshow parameter deferred_segment_creation;

該值設(shè)置后只對后面新增的表產(chǎn)生作用,對之前建立的空表不起作用。

3、可以使用手工為空表分配Extent的方式,來解決導(dǎo)出之前建立的空表的問題。說明如下:

3.1 使用ALLOCATE EXTENT的說明

使用ALLOCATE EXTENT可以為數(shù)據(jù)庫對象分配Extent。其語法如下:

-----------

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

-----------

可以針對數(shù)據(jù)表、索引、物化視圖等手工分配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)

針對數(shù)據(jù)表操作的完整語法如下:

-----------

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

-----------

故,需要構(gòu)建如下樣子簡單的SQL命令:

-----------

alter table aTabelName allocate extent

-----------

3.2 構(gòu)建對空表分配空間的SQL命令,

查詢當(dāng)前用戶下的所有空表(一個用戶最好對應(yīng)一個默認(rèn)表空間)。命令如下:

-----------

SQLselect table_name from user_tables where NUM_ROWS=0;

-----------

根據(jù)上述查詢,可以構(gòu)建針對空表分配空間的命令語句,如下:

-----------

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

-----------

批量輸出上述生成的SQL語句,建立C:\createsql.sql,其內(nèi)容如下:

-----------

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;

-----------

執(zhí)行C:\createsql.sql,命令如下:

-----------

SQL@ C:\createsql.sql;

-----------

執(zhí)行完畢后,得到C:\allocate.sql文件。

打開該文件會看到,已經(jīng)得到對所有空表分配空間的命令SQL語句。

3.4 執(zhí)行SQL命令,對空表分配空間:

執(zhí)行C:\allocate.sql,命令如下:

-----------

SQL@ C:\allocate.sql;

-----------

執(zhí)行完畢,表已更改。

3.4 此時執(zhí)行exp命令,即可把包括空表在內(nèi)的所有表,正常導(dǎo)出。

另外:Oracle11g中,對密碼是大小寫敏感的,即密碼中的字母是區(qū)分大小寫的。

在Oracle10g中及以前,密碼中的字母大小寫無所謂。

如何知道oracle數(shù)據(jù)庫哪些表是有數(shù)據(jù)的?哪些表是空的沒有數(shù)據(jù)?

select * from all_all_tables

這是查詢Oracle中的所有的表,包括SYS用戶下的,你可以根據(jù)表空間和所屬用戶來限制查詢結(jié)果

where owenr='' and tablespacename=''

想要查出沒數(shù)據(jù)的話,all_all_tables中有個num_rows字段,記錄該表數(shù)據(jù)是多少行的,rows=‘0’的肯定是沒數(shù)據(jù)的,

select * from all_all_tables

where num_rows='0'

and owenr='所屬用戶' and tablespacename='所屬表空間'

即可。

ORACLE查詢空表

MSSQL不知道

oracle在plsql里執(zhí)行如下代碼:

DECLARE

v_table tabs.table_name%TYPE;

v_sql VARCHAR2(888);

v_q NUMBER;

CURSOR c1 IS

SELECT table_name tn FROM tabs;

TYPE c IS REF CURSOR;

c2 c;

BEGIN

DBMS_OUTPUT.PUT_LINE('以下為空數(shù)據(jù)表的表名:');

FOR r1 IN c1 LOOP

v_table :=r1.tn;

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

OPEN c2 FOR v_sql;

LOOP

FETCH c2 INTO v_q;

EXIT WHEN c2%NOTFOUND;

IF v_q=0 THEN

DBMS_OUTPUT.PUT_LINE(v_table);

END IF;

END LOOP;

CLOSE c2;

END LOOP;

EXCEPTION

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

END;

然后點(diǎn)output,顯示的就是空表

oracle的if標(biāo)簽如何判空

select

--nvl(prplclaim.caseno, '0')是為空判斷,當(dāng)prplclaim.caseno為空時賦值0

--decode語法nvl(prplclaim.caseno, '0')為要進(jìn)行判斷的參數(shù),

為0時賦值未結(jié)案,否則賦值已結(jié)案

decode(nvl(prplclaim.caseno, '0'),

'0',

'未結(jié)案',

'已結(jié)案'),

decode(nvl(prplclaim.casetype, '11'),

'11',

'未結(jié)案',

'2',

'正常結(jié)案',

'3',

'零結(jié)案',

'0',

'注銷結(jié)案'),

from prplclaim prplclaim;

網(wǎng)頁題目:oracle怎么判斷空表 oracle中空值判斷
網(wǎng)頁URL:http://muchs.cn/article8/hhejop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作用戶體驗、虛擬主機(jī)面包屑導(dǎo)航、網(wǎng)站設(shè)計公司網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)