首先,看你是想導(dǎo)出成文本,還是直接插表里
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比敦煌網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式敦煌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋敦煌地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
要是導(dǎo)出的話,用spool就行
你那個試試,用下面三句
spool e:\log.txt; (當(dāng)然隨便放什么地方,起什么名,路徑對了就行)
select bif_code||','||name||';' from bis_bif_init;
spool off;
然后你去路徑哪里找那個log.txt,里面就是你說那格式的,這格式可以調(diào)整
你要想放表里也行中間那句可以換成
select 'insert into bis_bif_init( 新列名 ) values(' ||bif_code|| ',' || name || ') where xxx;' from bis_bif_init;
就是說格式自己定,''中想加啥加啥用||連起來就行。同樣去找txt,格式就是你定的那樣。
-------------------------------------------------------------------------------------------
這是一種txt的,還有一個,如果你想在這個表的新列里直接顯示加逗號那個格式的,也可以。就不用txt了,下次直接導(dǎo)出該列就行。但需要在表里加個列
alter table BIS_BIF_INIT add xxx(新列名字) char(100) generated always as (bif_code||','||name);
然后表里就有這個拼好的列,可能字符會很多,定大點(diǎn)
------------------------------------------------------------------------------------
最后一種,直接建個視圖得了,省事,就一句話
create view vie_bis_bif_init as bif_code||','||name||';' from bis_bif_init;
用正則表達(dá)式,應(yīng)該能解決你的問題
例子,供參考,具體稍作調(diào)整
select regexp_substr('01 a;02 b;03 c;04 d', '[^;]+', 1, level)
from dual
connect by level = regexp_count('01 a;02 b;03 c;04 d', '[^;]+')
先在數(shù)據(jù)庫里寫一個 split 函數(shù),然后
select s,count(s)
from
(select str_split (special_equipment,'/') s from table )
group by s
order by s
下面 是 split 函數(shù) 可以 試試, 但不一定適合,自己可以改改
CREATE OR REPLACE TYPE str_split_array IS TABLE OF VARCHAR2 (4000);
CREATE OR REPLACE FUNCTION str_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN str_split_array
IS
j INT := 0;
i INT := 1;
len INT := 0;
len1 INT := 0;
str VARCHAR2 (4000);
split_array str_split_array := str_split_array ();
BEGIN
len := LENGTH (p_str);
len1 := LENGTH (p_delimiter);
WHILE j len
LOOP
j := INSTR (p_str, p_delimiter, i);
IF j = 0
THEN
j := len;
str := SUBSTR (p_str, i);
split_array.EXTEND;
split_array (split_array.COUNT) := str;
IF i = len
THEN
EXIT;
END IF;
ELSE
str := SUBSTR (p_str, i, j - i);
i := j + len1;
split_array.EXTEND;
split_array (split_array.COUNT) := str;
END IF;
END LOOP;
RETURN split_array;
END str_split;
/
INSTR(C1,C2,I,J) 在一個字符串中搜索指定的字符,返回發(fā)現(xiàn)指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的開始位置,默認(rèn)為1 J 出現(xiàn)的位置,默認(rèn)為1
這個意思??
--截取至 第三個 分號位置,然后抽取第三個分號前面所有數(shù)據(jù)
SELECT substr('aaa;bbb;ccc;ddd;eee;fff;ggg;',1,INSTR('aaa;bbb;ccc;ddd;eee;fff;ggg;',';',1,3))
FROM dual;
--結(jié)果:
aaa;bbb;ccc;
SELECT decode( nvl(LENGTH(REGEXP_REPLACE(REPLACE(department, ';', '@'), '[^@]+', '')),0) ,
0,department
1,substr(department, 1, instr(department, ';', 1) -1)
2,substr(department,instr(department, ';', 1,1)+1,instr(department, ';', 1,2) - instr(department, ';', 1,1)-1),
3,substr(department,instr(department, ';', 1,1)+1,instr(department, ';', 1,2) - instr(department, ';', 1,1)-1)
4,substr(department,instr(department, ';', 1,1)+1,instr(department, ';', 1,2) - instr(department, ';', 1,1)-1)
) from dual
定義字段類型為varchar2, 直接插入就可以了。
create table stringtest(
teststring varchar2(1000)
)
insert into stringtest values('var v=123; var b=123; if(v==b){ return false}');
分享題目:oracle分號怎么拆開 oracle逗號拆分行
文章分享:http://muchs.cn/article42/hjdoec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、做網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、微信小程序、關(guān)鍵詞優(yōu)化、響應(yīng)式網(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)