国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Oracle數據庫中的字符處理技巧

數據庫 Oracle 數據庫運維
在數據庫開發與維護中,數據庫管理員接觸最多的數據類型就是字符類型了,包括字符串、日期類型的字符串等等。在Oracle數據庫中為了幫助數據庫管理員能夠以最快的方式處理這些字符類型的數據,提供了許多有用的函數或者工具。本文向您介紹在Oracle數據庫中處理字符串的經驗與心得。

一、去掉尾部的空格字符。

有時候在查詢或者進行其他處理的時候,需要把字符串尾部的空格字符去掉。如有時候應用軟件設計的不合理,會把空格字符保存在數據庫中。如在輸入產品品號的時候,用戶不小心,把“DT001”輸成了“DT001 ”。如果應用程序在設計的時候,能夠自動把尾部的空格去掉然后在保存到數據庫中能夠就萬無一失了。但是不少的應用軟件在開發的時候沒有如此設計。這就給后續的處理帶來了很多的麻煩。因為利用Where語句來查找記錄的時候,“DT001”(最后不帶空格)與“DT001 ”(最后帶一個空格)兩個是不同的條件。如果想利用這個條件來進行數據更新、查詢等等,就會遇到問題。為此在寫相關的Update或者Select語句的時候,可能需要把后面的空格符號去掉。為此在Oracle數據庫中,有很多種解決方式。如數據庫管理員可以使用Ltrim函數來實現。這個函數的格式為Ltrim[c1,c2]。其作用是去掉C1左邊所包含的C2種的任何字符。當遇到不是C2種的字符串時結束,然后返回剩余的字符串。如果把C2字符串設置為空格符號(默認情況下就是空格),那么就可以把DT001后面的空格符號去掉了。

二、在頭部自動進行填充。

有時候可能數據庫設計的時候,考慮的不夠周到,導致某些字段不夠大。在對數據庫進行升級的時候,需要調整相關的字段。此時就可能需要對某個字段的頭部進行填充,以達到數據一致性的要求。如現在有個ERP系統,其需要用到一張產品信息的表,其中有一個產品編號字段。剛開始在設計產品編碼的時候,設計的長度不夠,如只設置了5位。隨著企業產品記錄的增多,需要對這個編碼的內容進行擴展。如產品信息屬于包裝材料類的,需要在原來產品編號的頭部加入一個字符B;如產品信息屬于客供品的,則需要在原來產品編號的頭部加入一個字符C;如產品信息屬于輔助材料的,則在原來的產品編號前面加入一個字符F;等等。此時該如何實現這個需求呢?難道要一個個去修改嗎?現在這手工修改的工作量比較大,而且容易出錯,這個方法不可取。其實在Oracle數據庫系統中提供了一個單行字符函數,可以幫助數據庫管理員與企業來解決這個問題。這個函數就是RPAD函數。這個命令的格式為RPAD(C1,N,C2)。這個函數的意識是在C1的右邊填充字符C2,直到字符串的總長度滿足N。默認情況下C2的值為空格,用戶可以根據自己的需要設置這個值。如果C1的長度比N要大,則會截取C1右邊的N個字符。現在如果要實現上面這個需求,則只需要設置函數RPAD(產品編號,6,F)即可。由于原來的產品編號為5位,現在需要為輔助信息的產品編號前面加入一個字符F,修改后的總長度變為6位。不過在使用這個函數的話,往往需要利用Where條件語句進行限制。

現在這個函數還可以里用實現字符串的截取。如還是這個產品編號,其前面一位表示產品的種類。此時數據庫管理員就可以利用RPAD(產品編號,1)來截取產品編號的第一位字符(這里產品編號的長度比1要大,則會截取產品右邊的1個字符,即產品類別標示碼)。這在報表設計的時候也非常有用,有利于簡化報表的顯示。

三、字符大小寫的控制。

在做報表的時候,我們可能需要對字符串的現實格式進行控制,如大小寫的顯示格式。另外,在進行數據庫移植的時候,可能以前的收入大小寫不規范。數據庫管理員需要采用一定的規則來規范移植后的數據庫字符串書寫規范。為了簡化這些需求的實現方式,在Oracle數據庫中也提供了一些工具來解決這些問題。

如以前在輸入產品編號的時,可能大小寫不區分。而在前臺應用程序中也沒有進行這方面的控制。現在用戶希望所有的產品編號都為大寫,需要把原先是小寫的產品編號全部轉換成大寫。此時如果產品數量比較多的話,顯然利用手工修改的方式會增加工作量。如果編寫一個程序來實現的話,又太復雜,其實我們可以借鑒Oracle數據庫提供的字符串處理函數來實現。在單行字符函數集中,有一個函數UPPER,它的作用就是將全部字符串都改寫為大寫并返回。為此我們可以利用一個子查詢或者借助視圖的幫助,把所有產品編號中,如果含有小寫字符的產品編號都更新為大寫。如果原來就是大寫的,就保持原樣(而不是說原來大寫的變小寫,原來小寫的變大寫)。同理,既然小寫可以變大寫,那么大寫也就可以變為小寫。利用單行字符串函數LOWER,就可以把全部字符串改為小寫輸出(把大寫字母改為小寫,而小寫字符保持不變)。

另外一個大小寫的控制原則比較復雜,如對于一些英文地址或者英文名字之類的字符串,需要首個字母大寫,而其他字符小寫。這個實現起來就有一定的難度。還好在Oracle數據庫中提供了一個現成的解決方法,即利用Initchar函數來實現。這個函數的功能是將某個字段中每個單詞的首字符轉換為大小,其他字符都是小寫的字符串。通常情況下,這個字段之間的單詞可以利用空格、控制字符或則標點符號來表示。可見通過這個三個大小寫字符串控制函數,可以優化字符串的顯示格式,讓其顯示更加的規范。而結合Update語句的話,還可以成批的在數據庫中進行更新,讓其保存的數據也符合規范化的要求。

四、字符串中的復雜替換。

幾年之后,杭州進行來一些行政區劃的規格,如把下沙市改為了直屬杭州管轄的下沙區。為此有一家企業的數據庫管理人員就問筆者,能否把一些記錄中的下沙市都改為下沙區。什么意思呢?也就是說,在數據庫中可有含有如下記錄“下沙市某某鋼鐵廠”、“杭州市某某服裝廠”、“濱江區某某信息有限公司”等等。現在數據庫管理員希望把含下沙市的內容都改為下沙區。這涉及到一些復雜字段的替換,實現起來具有一定的難度。數據庫是結構化數據的結合體,不比Word文檔,可以利用查找替換功能來解決這個需求。那么在Oracle數據庫中該如何實現呢?在Oracle數據庫中就模擬實現了Word文檔中的查找替換功能。

如在單行字符函數中有一個叫做Replace的函數,就可以幫助數據庫管理員實現這個需求。這個函數的格式為Replace(C1,C2,C3)。他的含義就彪死后把C1中出現的C2都替換成C3,然后返回字符串。這是什么意思呢?其實就是跟Word文檔中的查找替換功能類似。從字符串C1種查找C2的內容,如果找到的話利用C3來代替。如果C3 的內容為空,則所有在字段中出現C2內容的字符都將被刪除。那要實現上面的需求,就可以把這個函數的參數設置為Replace(Adress,下沙市,下沙區)。然后再利用Upadate語句把這個函數返回的值賦值給地址字段即可。如此,在數據庫地址字段中,出現下沙市的地方將全部被更新為下沙區。但是這個更改不會影響到其他的記錄。如不會把杭州市也改為杭州區等等。

為此,要實現一些復雜的字符替換作業,可以利用函數Replace來完成。有時會,把Replace函數與其他函數相結合,還可以實現一些更加復雜的內容。如在產品基本信息中,產品編號中可能包含了產品的分類信息,如PSD001這個產品編號,第一個字符P表示成批,第二三個字符SD表示手動工具。如果自動工具的話就為PZD001。在生成報表的時候,如果利用這些字符來顯示結果的話,顯然報表的可讀性并不是很好。此時數據庫管理員可以先利用字符串截取函數或者利用上面所提到過的頭部填充函數等等來截取相關的字符串,然后再利用現在這個查找替換函數,則可以把ZD等字符轉換成“自動工具”等代表含義的字符串,這將提高報表的可讀性。可見,將Replace替換函數與其他函數結合(C1、C2、C3參數都可以利用函數來實現)從而可以實現復雜的替換功能。

 

【編輯推薦】

  1. 使用Java編寫Oracle存儲過程
  2. Java程序開發中的簡單內存分析
  3. Oracle與SQL Server之間的數據遷移
責任編輯:佚名 來源: IT專家網
相關推薦

2011-03-17 14:09:25

Oracle數據庫字符

2011-05-26 13:36:40

Oracle數據庫時間處理

2011-05-26 14:43:49

ORACLE數據庫異常處理

2010-04-06 11:19:28

Oracle數據庫

2010-04-21 11:43:33

Oracle數據庫

2010-03-18 09:28:14

Oracle數據庫遷移

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2011-03-01 16:30:55

Oracle

2011-04-11 16:50:13

Oracle數據庫索引

2011-03-11 16:25:53

Oracle數據庫

2010-06-04 14:59:06

MySQL數據庫

2009-03-23 10:11:59

Oracle數據庫唯一約束

2010-04-09 14:37:08

Oracle數據庫

2010-04-07 14:22:46

2010-04-30 14:39:03

Oracle數據庫

2011-03-17 16:35:20

Oracle數據庫段管理

2011-03-17 16:19:42

Oracle數據庫管理

2009-09-04 09:54:59

數據庫名

2009-07-02 00:00:00

OOPOracle

2009-09-02 18:52:38

Oracle數據庫并行
點贊
收藏

51CTO技術棧公眾號

国产香蕉精品| 亚洲精品中文字幕av| 亚州av影院| 久久爱www成人| 亚洲日本成人网| 日本在线观看视频| 一本一道综合狠狠老| 绯色av一区二区| 国产视频在线观看一区二区三区| 91精品视频专区| 精品一区二区日本| 暧暧视频在线免费观看| 狠狠久久亚洲欧美| 国产精品99久久久久久宅男| 欧美日韩精品综合| 亚洲区第一页| 久久免费一区| 日韩专区在线视频| 欧美日韩一区二区视频在线| 99在线|亚洲一区二区| 亚洲最大福利视频网| 99久久99久久精品国产片桃花 | 成人av综合网| 久久久久免费视频| 亚洲国产精品嫩草影院久久av| 久久久久在线观看| 国产在视频线精品视频www666| 国产精品久久久久久久久久久久 | 91久久综合| 免费国产一区二区| 美腿丝袜一区二区三区| 无码人妻aⅴ一区二区三区日本| 国产九色精品成人porny| 69sex久久精品国产麻豆| 久久综合九色综合97婷婷| 色悠悠久久综合网| 亚洲国产日产av| av中文资源在线| 亚洲高清一区二| 久久中文字幕一区二区| 欧美最顶级丰满的aⅴ艳星| 国产精品x453.com| 欧美重口乱码一区二区| 高清视频一区二区| 国产区二区三区| 岛国精品视频在线播放| 四虎在线视频| 欧美精品一区二区蜜臀亚洲| 免费电影日韩网站| 欧美专区福利在线| 国产毛片久久| 欧美日韩二三区| 一卡二卡欧美日韩| 国产不卡在线| 九九九久久久久久| 影音先锋日韩在线| 超碰10000| 亚洲久本草在线中文字幕| 污视频网站在线| 亚洲国产中文字幕久久网| 亚洲一区二区三区免费| www.一区二区三区| 国产二区国产一区在线观看| av在线影视| 日韩欧美国产一区在线观看| 日韩激情综合| 国产欧美欧洲| 久久综合99re88久久爱| 夜色福利资源站www国产在线视频 夜色资源站国产www在线视频 | 黄色网址在线播放| 日韩精品欧美激情| 亚洲动漫精品| 日韩最新中文字幕| 亚洲国产另类精品专区| 亚洲精品国产精品国产| 国产精品免费视频xxxx| 国产精品主播直播| 飘雪影院手机免费高清版在线观看| 亚洲人成在线播放| 欧美一区激情| 九色porny自拍| 日韩三级影视| 1024视频在线| 久久免费视频网站| 美腿丝袜亚洲三区| h动漫在线视频| 日韩最新免费不卡| 中文字幕一区二区三三| 91在线网址| 欧美一区二区三区日韩| 欧美亚洲色图校园春色| 日本亚洲自拍| 午夜欧美一区二区三区在线播放| 日本国产亚洲| 亚洲一区二区三区午夜| 黑人巨大精品欧美一区免费视频| 免费视频观看成人| 国产精品女同一区二区三区| 99福利在线| 91久久国产综合久久91精品网站 | 日本一区二区免费看| 亚洲3atv精品一区二区三区| 激情综合婷婷| 麻豆传媒网站在线观看| 91精品国产免费| 国产精品久久观看| 成人www视频网站免费观看| 在线观看欧美日韩国产| 久久精品国产精品亚洲综合| 黄av在线播放| 精品国产乱码久久久久久88av| 亚洲图片欧美激情| 一级毛片精品毛片| 成年人视频观看| 永久免费精品影视网站| 国产最新精品免费| 成人影音在线| 欧美日韩电影一区二区| 在线免费观看不卡av| 四季av一区二区凹凸精品| 国产特级嫩嫩嫩bbb| 日韩在线高清视频| 99精品视频一区二区| 粉嫩av一区二区三区四区五区| 亚洲精品二区| 亚洲精品影视在线观看| 国产真实乱子伦精品视频| 国产一区二区区别| 日本一区二区精品视频| 国产精品资源站在线| 一区二区三区四区国产| 紧缚奴在线一区二区三区| 97caopor国产在线视频| 欧美美女一区| 日本成人在线免费视频| 久久九九免费视频| 高清国产一区二区三区| 91九色综合| 国产69精品久久久久久久| 亚洲午夜未满十八勿入免费观看全集| 日本不卡一区二区三区高清视频| www.久久ai| 日本不卡一区二区三区四区| 日韩区在线观看| 久草在线在线精品观看| 国产私拍福利精品视频二区| 欧美亚洲一二三区| 91福利视频网| 欧美丝袜美女中出在线| 亚洲少妇一区| 欧美美女日韩| 一道本在线免费视频| 国产欧美日韩视频| 欧美日韩国产美女| 麻豆精品精品国产自在97香蕉| 亚洲www免费| 手机看片福利盒子久久| 国产精品香蕉在线观看| 正在播放亚洲一区| 国产精品一区二区果冻传媒| 亚洲国产欧美国产第一区| 一本免费视频| 精品国产一区二区三区麻豆小说 | 欧美激情视频网| 中文字幕一区二区三区四区不卡| 日韩国产一区二区三区| 嫩草在线视频| 人妻少妇精品无码专区二区| 国产精品成熟老女人| 91精品国产aⅴ一区二区| 国产成人av影院| 国产综合久久久| 三级福利片在线观看| 91精品91久久久中77777老牛 | 超碰中文在线| 日韩少妇内射免费播放| 国产精品精品久久久久久| 欧美日韩亚洲综合在线| 国产精品456露脸| 欧美极品中文字幕| 丝袜国产在线| 香艳视频网站| 日本最新一区二区三区视频观看| 色狠狠av一区二区三区香蕉蜜桃| 亚洲一级二级在线| 激情欧美一区二区| 天天超碰亚洲| 综合欧美精品| 国产福利在线播放麻豆| 国产高潮免费视频| 神马影院一区二区三区| 奇米影视亚洲狠狠色| 亚洲精品一区在线观看| 亚洲黄色免费网站| 国产精品中文字幕日韩精品 | 2020欧美日韩在线视频| 亚洲精品一区二区三区蜜桃下载| 亚洲日本青草视频在线怡红院 | 国产精品免费视频一区二区 | 亚洲一区在线看|