oracle如何遍歷表 oracle如何遍歷表并取出數(shù)據(jù)

oracle能否遍歷數(shù)據(jù)庫(kù)里所有表的字段與值

不知道你是寫程序用,還是找數(shù)據(jù)用。寫程序的話,一步到位,可能比較復(fù)雜!

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比鳳翔網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式鳳翔網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鳳翔地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

下面附一點(diǎn)找數(shù)據(jù)的較笨的方法!看對(duì)你有沒(méi)有用,以用戶SCOTT為例:

1.dba_tab_columns有某個(gè)用戶的所以表和列等信息:select table_name,column_name from dba_tab_columns where owner='SCOTT'

2.查看用戶的表所使用的數(shù)據(jù)類型有哪些:select distinct Data_type from (select * from dba_tab_columns where owner='SCOTT') A 通過(guò)查看,就可以知道,文本型有哪些?如:是否有char, varchar2等

3.創(chuàng)建一個(gè)表,用于保留那些表名和字段:CREATE TABLE SCOTT.TCOL(A VARCHAR2(50), B VARCHAR2(50))

4.因?yàn)镾COTT用戶的字段類型較少,下面以找NUMBER類型值為1100的表名與字段在SQLPLUS下運(yùn)行如下代碼(如果數(shù)值多的話,可以用 in('NUMBER',...)格式。

set serveroutput on

delete from scott.TCOL;

commit;

declare

cursor my_cursor is

select table_name,column_name from dba_tab_columns where owner='SCOTT' and DATA_TYPE='NUMBER';

v_table varchar2(50);

v_col varchar2(50);

v_sql varchar2(4000);

begin

open my_cursor;

loop

fetch my_cursor into v_table,v_col;

dbms_output.put_line(v_table);

exit when my_cursor%NOTFOUND;

v_sql:='Insert into SCOTT.TCOL(A,B) select '||''''|| v_table||''''||','||''''|| v_col||''''||' from SCOTT.'||v_table||' where '||v_col||'=1100';

dbms_output.put_line(v_sql);

EXECUTE IMMEDIATE v_sql;

commit;

end loop;

close my_cursor;

end;

5.最后執(zhí)行select * from scott.tcol,就可以看到結(jié)果! 如果有用,自己再整理成一個(gè)存儲(chǔ)過(guò)程.

以上僅參考!

oracle中如何查詢多張表的數(shù)據(jù)!

弄個(gè)字符串變量,設(shè)個(gè)游標(biāo),用括號(hào)里那一串;

然后遍歷表名,每找到一個(gè)表名,就在字符串變量里拼上一段:= 'select * from '||table_name||';',

然后用EXECUTE IMMEDIATE執(zhí)行;

然后讀下一個(gè)表名,直至遍歷完畢。

大致就是這么個(gè)意思。

oracle中如何根據(jù)表中一個(gè)字段遍歷數(shù)據(jù)

寫個(gè)for循環(huán)就可以遍歷一遍,例如meminfo 表中有member_id 你現(xiàn)在有的id需要在meminfo 中查詢出現(xiàn)次數(shù)

declare

i number(5);

id number(15);

begin

for rec in(select member_id from meminfo) loop

if member_id=id

then i:=i+1;

end if;

end;

這樣就會(huì)遍歷一遍你的這個(gè)數(shù)據(jù)庫(kù)

Oracle:對(duì)一定數(shù)量的表(幾千個(gè))進(jìn)行遍歷或其他方式查詢,輪流處理每張表并輸出所有表的最終處理結(jié)果

下面語(yǔ)句用于批量生成語(yǔ)句,生成后在sqlplus執(zhí)行select?'select?id,sum(result)?from?'||table_name||'?group?by?id;'?from?user_tables?where?table_name?like?'MRO_%_201702';

oracle如何實(shí)現(xiàn)遍歷查詢?

declare

teacher_name varchar(20)------------跟teacher表中老師名字類型保持一致

cursor t_name is select teachername from teacher---------申明游標(biāo)t_name為從teacher表中查詢老師名字

begin

open t_name;------打開(kāi)游標(biāo)t_name

loop-------開(kāi)始循環(huán)(遍歷)

fetch t_name into teacher_name-------將老師名字值賦予變量teacher_name

if t_name%found-------------開(kāi)始遍歷有值時(shí)插入以下數(shù)據(jù)

then

select name,count(*) into new_table

from table_teacher_student

where name=teacher_name group by name-----將一個(gè)老師名字依據(jù)條件插入新表數(shù)據(jù)

else

dmbs_output.put_line(‘完成所有工作’);---------遍歷結(jié)束時(shí)輸出完成工作

exit;

end if;

end loop;

倉(cāng)促寫下以上內(nèi)容,可能部分語(yǔ)法報(bào)錯(cuò),思路就是這樣,很基本的一個(gè)游標(biāo)使用。

文章標(biāo)題:oracle如何遍歷表 oracle如何遍歷表并取出數(shù)據(jù)
鏈接URL:http://muchs.cn/article16/hggddg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣做網(wǎng)站、企業(yè)網(wǎng)站制作

廣告

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

搜索引擎優(yōu)化