需要用到動態sql。
創新互聯專注于寧化網站建設服務及定制,我們擁有豐富的企業做網站經驗。 熱誠為您提供寧化營銷型網站建設,寧化網站制作、寧化網頁設計、寧化網站官網定制、微信小程序開發服務,打造寧化網絡公司原創品牌,更為您提供寧化網站排名全網營銷落地服務。
1、首先要給用戶賦予權限:
grant create any table to 用戶名;
2、創建存儲過程:
create procedure p_create_table
(v_sql varchar2)--輸入建表語句
as
begin
execute immediate v_sql;
end;
3、執行:
利用游標將查詢結果插入到一個表里!
或者存儲到定義的數組中!
可以取,用substr函數和instr函數共同實現,但是實現起來不是太容易,費了好大勁給你取了v1和v2,那個v3你自己照個寫一寫吧,全當自己學習了
select substr('v1,v2,v3',1,instr('v1,v2,v3',',',1,1)-1) from dual;
select substr('v1,v2,v3',instr('v1,v2,v3',',',1,1)+1,(instr('v1,v2,v3',',',instr('v1,v2,v3',',',1,1)-1,2)-(instr('v1,v2,v3',',',1,1)+1))) from dual;
這兩句在oracle中可直接運行,其中'v1,v2,v3'你可以用某個字段來代替
比如你的表為user
你可以先創建一個類User,把數據庫中的數據放入User對象中
再用集合存放每個User對象,如:
public ArrayList findAllUsers(){
ArrayList al=new ArrayList();
//循環查詢數據庫
while(...){
String name=....;//從數據庫中查出
User user=new User();
user.name=name;
...以此類推
al.add(user);
}
return al;
}
返回結果集合成什么樣?
一條記錄直接輸出?
你可以把返回的結果插到一張表里,然后去看不就行了嗎?
你可以把每次查詢,改成每次插入一張表里,回過頭再看結果集
給你個范例:
CREATE OR REPLACE FUNCTION f_jax_str2tab(p_str IN VARCHAR2,
p_sep varchar2 default ','
) RETURN type_jax_varc2tab IS
/******************************************************************
Ver1.0 Created by jaxzhang on 2009-06-08
把字符串(1*2*3*4*5)轉換為內存表形式
create or replace type type_jax_varc2tab is table of varchar2(2000);
測試用例:SELECT * FROM TABLE(f_jax_str2tab('1*2*3*4*5','*'));
******************************************************************/
v_str varchar2(2000);
v_cnt NUMBER ;
v_numtab type_jax_varc2tab := type_jax_varc2tab(); --返回內存表
BEGIN
select decode(substr(p_str,-1),p_sep,p_str,p_str || p_sep) into v_str from dual;
select length(v_str) - length(REPLACE(v_str, p_sep)) into v_cnt from dual;
FOR i IN 1 .. v_cnt LOOP
v_numtab.EXTEND;
v_numtab(i) := substr(v_str, 1, instr(v_str, p_sep) - 1);
v_str := substr(v_str, instr(v_str,p_sep) + 1);
END LOOP;
RETURN v_numtab;
EXCEPTION
WHEN OTHERS THEN
v_numtab.DELETE;
END;
網站欄目:oracle怎么存集合 oracle 集合操作
文章出自:http://m.newbst.com/article6/hjhiog.html
成都網站建設公司_創新互聯,為您提供營銷型網站建設、網站改版、電子商務、建站公司、外貿建站、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯