數(shù)據(jù)庫(kù)中有user_tab_columns和user_tables這兩個(gè)表,你看看,可以解決的你問(wèn)題。腫么沒(méi)分

為企業(yè)提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣、競(jìng)價(jià)托管、品牌運(yùn)營(yíng)等營(yíng)銷(xiāo)獲客服務(wù)。創(chuàng)新互聯(lián)建站擁有網(wǎng)絡(luò)營(yíng)銷(xiāo)運(yùn)營(yíng)團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營(yíng)銷(xiāo)經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營(yíng)銷(xiāo)獲客難題,做到“讓獲客更簡(jiǎn)單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營(yíng)銷(xiāo)”三大難題,同時(shí)降低了營(yíng)銷(xiāo)成本,提高了有效客戶(hù)轉(zhuǎn)化率,獲得了眾多企業(yè)客戶(hù)的高度認(rèn)可!
表1查出來(lái) 后臺(tái)把數(shù)據(jù)插到list或者map里傳給jsp jsp的foreach遍歷顯示在action form表單提交可以獲取action中數(shù)據(jù)
弄個(gè)字符串變量,設(shè)個(gè)游標(biāo),用括號(hào)里那一串;
然后遍歷表名,每找到一個(gè)表名,就在字符串變量里拼上一段:=
'select
*
from
'||table_name||';',
然后用EXECUTE
IMMEDIATE執(zhí)行;
然后讀下一個(gè)表名,直至遍歷完畢。
大致就是這么個(gè)意思。
不知道你是寫(xiě)程序用,還是找數(shù)據(jù)用。寫(xiě)程序的話,一步到位,可能比較復(fù)雜!
下面附一點(diǎn)找數(shù)據(jù)的較笨的方法!看對(duì)你有沒(méi)有用,以用戶(hù)SCOTT為例:
1.dba_tab_columns有某個(gè)用戶(hù)的所以表和列等信息:select table_name,column_name from dba_tab_columns where owner='SCOTT'
2.查看用戶(hù)的表所使用的數(shù)據(jù)類(lèi)型有哪些: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用戶(hù)的字段類(lèi)型較少,下面以找NUMBER類(lèi)型值為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ò)程.
以上僅參考!
declare
teacher_name varchar(20)------------跟teacher表中老師名字類(lèi)型保持一致
cursor t_name is select teachername from teacher---------申明游標(biāo)t_name為從teacher表中查詢(xún)老師名字
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)促寫(xiě)下以上內(nèi)容,可能部分語(yǔ)法報(bào)錯(cuò),思路就是這樣,很基本的一個(gè)游標(biāo)使用。
寫(xiě)個(gè)for循環(huán)就可以遍歷一遍,例如meminfo 表中有member_id 你現(xiàn)在有的id需要在meminfo 中查詢(xún)出現(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ù)
新聞名稱(chēng):oracle查詢(xún)?nèi)绾伪闅v,sql需要遍歷查詢(xún)結(jié)果
分享鏈接:http://chinadenli.net/article34/hsjdse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、面包屑導(dǎo)航、App開(kāi)發(fā)、外貿(mào)網(wǎng)站建設(shè)、App設(shè)計(jì)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(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)