wmsys.wm_concat() 這個函數(shù),是把一列的值都取出來放在一個字段里,并且是用逗號隔開的
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的萬全網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
SELECT Q'{ --""I'am }' FROM dual;
大括號中間的內(nèi)容隨便寫 ,任何符號都可以,包括注釋符號--
SELECT 'A'||CHR(39)||'B' FROM dual;
CHR(39)就是特殊符號'
說明插入語句中缺少必要的逗號,或者括號有中文導致的。
sql:insert into tablename(create_time) values( to_date(to_char(sysdate,'yyyy-mm-dd')','yyyy-mm-dd');
解釋:oracle中必須保持括號對稱,并且標點都是英文,否則的話,可能會報錯一些并不是真實情況的錯誤的,日期格式轉(zhuǎn)換必須先變成字符串,之后再變成需要的日期格式。
變成全角的,或者把逗號轉(zhuǎn)碼,例如:qt; 插入數(shù)據(jù)庫存儲,讀出的時侯再轉(zhuǎn)碼
基本上而言這種方式已經(jīng)是最簡單的了。
你想,首先你要寫文字列,這部分是不能省,也沒辦法省的,那么剩下的就是中間的逗號,就算你先把逗號加在每個字段的前面或者后面,那么最后不是還要去掉一個逗號,這樣反而增大了查詢的繁瑣性。
當然,如果真的想寫,自己寫一個函數(shù)也可以(其實就是加一個分隔符,可以用循環(huán)的方式也可以用最后一個分隔符去掉的方式),不過這種需求應該不多,至少我沒見過幾回,所個人覺得必要性不大。
還有一種方式是先列轉(zhuǎn)行(說成行轉(zhuǎn)列也行,反正都是旋轉(zhuǎn)90度),然后用wmsys_concat來做
不過不管哪種方式個人覺得,現(xiàn)在的這種方式更便于操作,改變。假設(shè),今天是5個字段的合并,假設(shè)明天改變需求,要求6個或者4個,那么對于這個語句來說可能稍微增加或減少幾個字符就行了,如果是函數(shù)或者列轉(zhuǎn)行,那么就要麻煩很多了。