锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍥爋racle搴旂敤紼嬪簭鍙婂叾宸ュ叿toad銆丳LSQL Developer絳夌殑閮ㄧ講寰堝,鍔ㄨ緳瑕佸畨瑁呭嚑鐧懼厗鐨凮racle Client瀹炲湪寰堢儲銆?/p>
Instant client灝忚屽鐢ㄣ傝繖閲屽叡浜嚭鑷繁鐨勭粡楠岋紝渚涘悓琛屽弬鑰冿紝濡傛灉鑳界粰浣犲府鍔╋紝鑽e垢涔嬭嚦銆?/p>
榪愯鐜錛歸indows XP sp3錛屾柊瀹夎緋葷粺錛屼粠鏈畨瑁呰繃浠諱綍鐗堟湰Oracle 1銆佷笅杞絀nstant Client http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 鎵懼埌涓庣郴緇熷搴旂増鏈笅杞姐?/p>
榪欓噷浠?2浣峸indows緋葷粺錛?/p>
instantclient-basic-nt-11.2.0.3.0.zip instantclient-sqlplus-nt-11.2.0.3.0.zip 濡傛灉浣犲彧鐢ㄥ鎴風宸ュ叿錛屼笉浣跨敤鍛戒護琛屼笅sqlplus錛岀浜屼釜鍖呭彲浠ヤ笉鐢?/p>
2銆佽В鍘嬬緝鍖呭埌C:\instantclient_11_2 3銆佽緗彉閲忥細 NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK錛堟敞鎰忎腑闂存湁絀烘牸錛岃繖涓鏋滀笉璁撅紝toad鏌ヨ涓枃浼氭槸涔辯爜錛?/p>
TNS_ADMIN=C:\instantclient_11_2 Path=C:\instantclient_11_2 4銆佷繚瀛樹互涓嬪唴瀹逛負娉ㄥ唽琛ㄦ枃浠訛紝瀵煎叆娉ㄥ唽琛紙璺緞閮ㄥ垎錛岃鑷繁淇敼錛?/p>
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home] "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" "ORACLE_BUNDLE_NAME"="Enterprise" "ORACLE_GROUP_NAME"="Oracle - OraClient10g_home" "ORACLE_HOME"="C:\\instantclient_11_2" "ORACLE_HOME_KEY"="SOFTWARE\\ORACLE\\KEY_OraClient10g_home" "ORACLE_HOME_NAME"="OraClient10g_home" 5銆佸緩绔媡nsnames.ora錛屽茍淇濆瓨鍒板畨瑁呯洰褰曪細C:\instantclient_11_2 榪欎釜榪欓噷灝變笉澶氳浜?/p>
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) 6銆佹祴璇曪細 C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 11.2.0.3.0 Production on 鏄熸湡鍏?4鏈?28 10:10:10 2012 Copyright (c) 1982, 2010, Oracle. All rights reserved. SQL> conn scott/tiger@orcl 宸茶繛鎺ャ?/p>
SQL> 鑷蟲錛屽畨瑁呭凡緇忓畬鎴愩倀oad銆丳LSQL Developer絳夊伐鍏鳳紝浠ュ強搴旂敤杞歡閮藉彲浠ユ甯鎬嬌鐢ㄤ簡銆?/p>
鏄ㄥぉ紿佺劧鏈夊鎴峰弽搴旂郴緇熸棤娉曟甯哥殑鎿嶄綔浜嗭紒鎰熷埌寰堥渿鎯婂晩錛岀郴緇熶竴鐩磋繍琛屾甯稿晩錛屾庝箞浼氱獊鐒跺嚭闂銆備簬鏄刀绱ц窡韙皟鏌ョ粓浜庡彂鐜頒簡闂鐨勬牴婧愩?/p>
闂涓錛氭暟鎹簱 'XXXX' 鐨勪簨鍔℃棩蹇楀凡婊°傝嫢瑕佹煡鏄庢棤娉曢噸鐢ㄦ棩蹇椾腑鐨勭┖闂寸殑鍘熷洜錛岃鍙傞槄 sys.databases 涓殑 log_reuse_wait_desc 鍒?/p>
闂浜岋細鏃犳硶涓烘暟鎹簱 'XXX' 涓殑瀵硅薄 ''PK_tbl_XXXX' 鍒嗛厤絀洪棿錛屽洜涓?'PRIMARY' 鏂囦歡緇勫凡婊°傝鍒犻櫎涓嶉渶瑕佺殑鏂囦歡銆佸垹闄ゆ枃浠剁粍涓殑瀵硅薄銆佸皢鍏朵粬鏂囦歡娣誨姞鍒版枃浠剁粍鎴栦負鏂囦歡緇勪腑鐨勭幇鏈夋枃浠跺惎鐢ㄨ嚜鍔ㄥ闀匡紝浠ヤ究澧炲姞鍙敤紓佺洏絀洪棿銆? 瀵逛簬瑙e喅榪欎袱涓棶棰樼殑瑙e喅鏂規濡備笅錛堝湪緗戜笂鎼滅儲浜嗕竴鎶婏紝闂瑙e喅浜嗐傜幇鍦ㄦ暣鐞嗕簡濡備笅錛夛細 闂涓鐨勮В鍐蟲柟娉曪細 鏂規硶1錛?nbsp; MSSQL2005鏃ュ織鐨勬敹緙?/strong> 鏂規硶2錛氫笅闈㈢殑鎵鏈夊簱鍚嶉兘鎸囦綘瑕佸鐞嗙殑鏁版嵁搴撶殑搴撳悕 c.闄勫姞鏁版嵁搴? 鐗瑰埆娉ㄦ剰錛?span style="color: #008080">--鏈濂藉浠芥棩蹇楋紝浠ュ悗鍙氳繃鏃ュ織鎭㈠鏁版嵁銆傘傘?/span> 闂浜岀殑瑙e喅鏂規錛?/strong> 瑙e喅鏂規硶錛?br />1.媯鏌ヤ綘鐨勭鐩樺墿浣欑┖闂存槸鍚﹁凍澶?濡傛灉娌℃湁紓佺洏鍓╀綑絀洪棿,鍒欐竻鐞嗙鐩?鑵懼嚭絀洪棿 2.媯鏌ヤ綘鐨勭鐩樺垎鍖烘牸寮?br />濡傛灉鏄疐AT16,鍒欐暟鎹枃浠舵渶澶у彧鑳芥槸2G 3.媯鏌ヤ竴涓嬩綘鏈夋病鏈夐檺鍒舵暟鎹簱鏂囦歡鐨勫ぇ灝?br />浼佷笟綆$悊鍣?-鍙抽敭浣犵殑鏁版嵁搴?-灞炴?-鏂囦歡澧為暱闄愬埗--濡傛灉鏈夐檺鍒跺ぇ灝?鍙栨秷闄愬埗 4.媯鏌ヤ綘鐨凷QL鐗堟湰,濡傛灉浣犵敤MSDE,鍒欓檺鍒朵簡鏁版嵁鏂囦歡鏈澶ф槸2G 5.浣犱篃鍙互涓?primary 緇勬坊鍔犳柊鐨勬暟鎹枃浠舵潵瑙e喅榪欎釜闂 鎴栬?閫変腑鏁版嵁搴?>灞炴?>鏂囦歡錛氭坊鍔犱竴涓柊鏂囦歡
AND Professional_code NOT IN (SELECT professional_code FROM bm_report_status WHERE status <> 0 AND object_code=15074 AND time_code='MO201211')) t
where rolename=t.RN and member in(select member from bm_menberofobject where objectForUser=15074))
SELECT Professional_name, STUFF(( SELECT',' + member FROM TestTitle subTitle WHERE Professional_name = TestTitle.Professional_name
鍏跺疄鏄湁鍔炴硶鍙互澶уぇ鎻愬崌鏁版嵁搴撹繍琛屾晥鐜囩殑錛岃繖瑕佹眰鎴戜滑鐨勬湇鍔′漢鍛樿瀛︿細鏁版嵁搴撴棩甯哥淮鎶ょ殑楂樼駭鎶宸э紝鑰屼笖鏄繀欏誨浼氥?br />
涓嬮潰鏄暟鎹簱鏁堢巼鎻愬崌鎶宸х殑鍏ㄩ潰鍐呭錛屽緩璁墍鏈夋湇鍔′漢鍛樿嚜琛岀粌涔犲茍鐢ㄥ湪瀹為檯宸ヤ綔涓紝瑕佹眰鐔熺粌鎺屾彙銆?br />
鎶宸т竴錛氶噸寤虹儲寮?/strong>
鏁堢巼鎻愬崌鎸囨暟錛氶珮
鐗圭偣錛氫竴浜屼笁涔板崟錛岀伆甯哥殑蹇紝涓涓嬪氨寮勫畬鍙互璧頒漢浜嗐?br />
妗堜緥錛氭煇瓚呭競T1鍟嗚錘瀹?鐧句竾琛岀駭鏁版嵁錛屽師閫熷害浜旂錛岄噸寤虹儲寮曞悗涓ょ涓嶅埌錛岄熷害鎻愬崌榪戜竴鍊嶃備笉瑕佸皬鐪嬭繖鍑犵錛屽瓚呭競鏉ヨ錛岄偅鎰忓懗鐫涓嶅繀瑕佹帓闀塊槦銆?br />
鐢變簬鏁版嵁搴撴棩甯稿啓鎿嶄綔棰戠箒錛岀儲寮曠殑宸ヤ綔鏁堢巼浼氳秺鏉ヨ秺浣庯紝閫熷害鑷劧澶у彈褰卞搷錛屽緢澶氬鎴蜂細鏈夎繖縐嶆劅瑙夛紝鍓嶅崐騫磋繕闈炲父蹇紝鍚庡崐騫村氨鍙椾笉浜嗕簡銆傚垰鍒氬埌騫村簳錛屾濂芥槸鍑烘姤鍛娿佹煡璧勬枡鐨勫勾鍏籌紝鍋忓亸杞歡鎱㈠緱瑕佸懡錛屾湇鍔′漢鍛樹篃鍒兂鏈夊ソ鏃ュ瓙榪囷紝闄潃鍔犵彮鍚э紝灝辯畻瑙e喅涓嶄簡闂錛屼篃璁╀漢瀹跺績鐞嗚垝鏈嶇偣銆傝繖鏍風殑鏃ュ瓙鍙互榪囧幓浜嗐?br />
鍛戒護1錛欴BCC DBREINDEX (琛ㄥ悕縐?"",70) ---閽堝涓昏褰卞搷閫熷害鐨勮〃錛屼竴鑸rdrecords銆乻alebillvouchs銆乸p_mrpdetails銆乸p_rmrpdetails
璇存槑錛氬彧瀵逛富瑕佽〃鎿嶄綔錛屽獎鍝嶉熷害鐨勫綋鐒舵槸榪欏嚑涓ぇ琛紝閫熷害瑙e喅闂錛屼篃涓嶅獎鍝嶅鎴蜂嬌鐢?br />
鍛戒護2錛歟xec sp_msforeachtable "DBCC DBREINDEX(""?"")" ---鏁版嵁搴撴墍鏈夎〃閲嶅緩绱㈠紩
璇存槑錛氫笉澶緩璁紝闄ら潪澶捀浜?br />
鐗瑰埆鎸囧嚭錛岄噸寤虹儲寮曞墠蹇呴』鏂綉錛屼互淇濊瘉鎵鏈夊鎴風鏃犱漢鍦ㄦ搷浣滆蔣浠訛紝浣犳噦鐨?br />
鎶宸т簩錛氳〃鍒嗗尯
鏁堢巼鎻愬崌鎸囨暟錛氳秴楂?br />
鐗圭偣錛氭參宸ュ嚭蹇椿銆傜‖鐩樿秺澶氾紝瀹冨氨瓚婂揩錛屾墍鏈夌‖鐩樹竴璧瘋漿褰撶劧蹇紱CPU瓚婂錛屽畠灝辨洿蹇紝sqlserver鐨勫紩鎿庡榪欎釜鏈変紭鍖栬璁★紱璁捐寰楄秺鍚堢悊錛屽畠灝辯伆甯告淮蹇紝渚嬪鍘嗗彶鏁版嵁鎸夊勾瀛樻斁錛屽洜涓轟綘涓鑸笉鐢ㄥ槢錛岄偅鏁版嵁搴撳彧瀵逛綘瑕佹搷浣滅殑閮ㄥ垎鍒嗗尯媯绱紝鑷劧椋炲揩銆?br />榪樻湁錛屽繀欏誨緱鏄痵ql2005鍙婁互涓婄増鏈紝浜哄涔扮殑ERP浣犺繕瑁卻ql2000錛屽幓姝誨惂銆?br />
妗堜緥錛歂C銆乁8 10.0錛屾槸鐨勶紝瀹冧滑鐢ㄧ殑灝辨槸琛ㄥ垎鍖猴紝鎵浠ユ暟鎹秺嫻鳳紝閫熷害涔熻秺Hi
娌℃湁鍋氳〃鍒嗗尯涔嬪墠錛屽鎴鋒槸鐥涜嫤鐨勶紝浣犱篃寰楃棝鑻︼紝鍥犱負浣犱笉鏄庣櫧鍑犱竾鍏冪殑鏈嶅姟鍣ㄦ庝箞灝辯帺涓嶈漿涓涓猅6錛屼絾NC榪欎箞嫻峰嵈鍙互鍦ㄥ甯︿笂婧滄簻鐨勮窇錛烾8 10.0榪樹笉鍒嗗勾搴﹁¥鍛紝鍜變竴涓勾搴﹁繕鐢ㄧ埇鐨勶紵濡傛灉鎴戣鍙互鎻愬崌浜斿嶇敋鑷蟲洿楂樼殑閫熷害錛屼綘淇′笉淇★紵鍙嶆鎴戞槸淇′簡銆?br />
鐪熺殑銆?br />
榪欎釜鏈夌偣鐐歸毦錛屽洜涓鴻姹傛湁鏇村鐨勬暟鎹簱鐭ヨ瘑錛屼笉榪囧垵涓敓鐨勬按騫充篃澶熺敤浜嗭紝鏉ュ惂銆?br />
1.涓烘暟鎹簱寤轟釜鏂囦歡緇勶紙鍙互寤哄涓級錛屾渶濂芥槸瀛樻斁浜庝笉鍚岀鐩樹笂銆傝繖鏍鋒晥鐜囧緱浠ユ渶澶у寲錛屾兂涓鎯沖惂錛屾垜浠煡涓涓勾搴︽墍鏈夋敹鍙戣褰曪紝涓変釜紜洏涓璧瘋漿錛屾槸涓嶆槸鍘熸潵閫熷害鐨勪笁鍊嶏紵
ALTER DATABASE 鏁版嵁搴撳悕 ADD FILEGROUP 鏂囦歡緇勫悕
2.涓涓枃浠剁粍鍙斁緗涓枃浠訛紝涓嬮潰錛屽彧涓轟竴涓枃浠剁粍鍒嗛厤涓涓枃浠訛紝綾繪帹鍚с?br />
ALTER DATABASE 鏁版嵁搴撳悕 ADD FILE (NAME = N"鏂囦歡緇勫悕", FILENAME = N"瀛樻斁璺緞",SIZE = 5MB , FILEGROWTH = 10% ) TO FILEGROUP 鏂囦歡緇勫悕
3.鍒涘緩鍒嗗尯鍑芥暟銆傝繖涓嚱鏁版槸鏈枃浠剁粍涓撴湁鐨勶紝鍐嶅緩鍏跺畠鐨勬枃浠剁粍榪樺緱鍐嶆悶涓涓備富瑕佹槸璁懼畾錛屽寘鎷璁劇幇鏈夌殑鏁版嵁浠庡摢閲屽紑濮嬫按騫沖垎鍓詫紝姣斿鎴戜滑鍋囪U8 10.0鐨勪笂涓騫村害鏈鍚庝竴琛宺drecords璁板綍鐨処d鏄?000000錛岄偅涔堝氨鍙互璁懼畾榪欎釜鍊鹼紝榪欎互鍐呯殑璁板綍浼氬垏鍓蹭繚瀛樺埌絎竴涓垎鍖轟腑銆?br />
CREATE PARTITION FUNCTION [鍑芥暟鍚峕 (int) AS RANGE LEFT FOR VALUES (5000000,8274249,12000000)
姝ゅ彞琛ㄧず錛屽垎涓変釜鍖哄瓨鏀懼師鍏堢殑鏁版嵁
4.灝嗗垎鍖哄嚱鏁扮粦瀹氬埌鍒嗗尯鏋舵瀯涓?
CREATE PARTITION SCHEME [鏋舵瀯鍚峕
AS PARTITION [鍑芥暟鍚峕
TO ([PRIMARY],[鏂囦歡緇勫悕],[PRIMARY],[鏂囦歡緇勫悕],[PRIMARY],[鏂囦歡緇勫悕])
5.鍒犻櫎琛ㄧ殑涓婚敭錛屽繀欏誨垹闄わ紝琛ㄦ媴蹇冿紝涓婚敭鍙互鍐嶅緩鐨?
ALTER TABLE 鏁版嵁琛ㄥ悕縐?DROP CONSTRAINT [涓婚敭]
6.鍒犻櫎鑱氶泦绱㈠紩錛屽鏋滄湁鐨勮瘽錛屾垜榪樻病鎵懼埌鍛戒護錛岀幇鍦ㄦ槸鎵嬪姩鍒犻櫎鐨?br />
7.寮濮嬪仛琛ㄥ垎鍖?
ALTER TABLE 鏁版嵁琛ㄥ悕縐?add CONSTRAINT [涓婚敭] PRIMARY KEY CLUSTERED (涓婚敭瀛楁鍚?
ON [SHEME_rdrec](涓婚敭瀛楁鍚?
浣犵湅錛岃繖涓嶆槸鎭㈠浜嗕富閿悧
涓嶈繃榪樻槸寰楁墜鍔ㄦ仮澶嶅師鏉ョ殑鑱氶泦绱㈠紩錛岃繖涓垜鍐嶆煡鏌ヨ鍙ュ惂
鐗瑰埆鎻愬嚭錛?/strong>
鏁版嵁搴撴敹緙╁茍涓嶈兘鎻愰珮鏁版嵁搴撶殑璇誨彇鏁堢巼錛屾鐩稿弽錛屽畠鍙嶈屾洿鎱簡銆傚師鍥狅紝鏄敹緙╁悗鏁版嵁搴撳唴閮ㄧ殑鏁版嵁瀛樺偍鍙戠敓浣嶇Щ錛屼篃灝辨槸绱㈠紩鍙樺緱鏇翠綆鏁堛?br />榪欑鎯呭喌涓嬶紝蹇呴』鍐嶅仛涓嬈$儲寮曢噸寤猴紝浣嗘垜鍙戠幇浼間箮鍙鏀剁緝浜嗕互鍚庯紝鏁版嵁搴撻兘鎱紝閲嶅緩绱㈠紩涔熸仮澶嶄笉鍒板師鏉ョ殑閫熷害錛屼竴涓嬫兂涓嶆槑鐧介亾鐞嗭紝鑰屼笖鍋氱殑嫻嬭瘯嬈℃暟涔熸湁闄愩?br />(杞笘浜?http://bbs.iufida.com/thread-174625-1-1.html)鏁板鍑芥暟
銆銆trunc(45.923錛?) 鎸夋寚瀹氱簿搴︽埅鏂崄榪涘埗鏁?緇撴灉錛?5.9
銆銆mod(1600,300) 姹傞櫎娉曚綑鏁?緇撴灉錛?00
銆銆abs(numeric_expr) 姹?a target="_blank">緇濆鍊?/a>
銆銆ceiling(numeric_expr) 鍙栧ぇ浜庣瓑浜庢寚瀹氬肩殑鏈灝忔暣鏁?
銆銆avg錛坣umeric_expr錛夊彇騫沖潎鏁?
銆銆exp(float_expr) 鍙栨寚鏁?
銆銆floor(numeric_expr) 灝忎簬絳変簬鎸囧畾鍊煎緱鏈澶ф暣鏁?
銆銆pi() 3.1415926.........
銆銆power(numeric_expr,power) 榪斿洖power嬈℃柟
銆銆rand([int_expr]) 闅忔満鏁頒駭鐢熷櫒
銆銆round(numeric_expr,int_expr) 瀹塱nt_expr瑙勫畾鐨勭簿搴﹀洓鑸嶄簲鍏?
銆銆sign(int_expr) 鏍規嵁姝f暟,0,璐熸暟,,榪斿洖+1,0,-1
銆銆sqrt(float_expr) 騫蟲柟鏍?
緙栬緫鏈鏃ユ湡銆佹椂闂村嚱鏁?/span>
銆銆getdate() 榪斿洖鏃ユ湡
銆銆datename(datepart,date_expr) 榪斿洖鍚嶇О濡?June
銆銆datepart(datepart,date_expr) 鍙栨棩鏈熶竴閮ㄤ喚
銆銆datediff(datepart,date_expr1.dateexpr2) 鏃ユ湡宸?
銆銆dateadd(datepart,number,date_expr) 榪斿洖鏃ユ湡鍔犱笂 number
銆銆涓婅堪鍑芥暟涓璬atepart鐨?
銆銆鍐欐硶 鍙栧煎拰鎰忎箟
銆銆yy 1753-9999 騫翠喚
銆銆qq 1-4 鍒?
銆銆mm 1-12 鏈?
銆銆dy 1-366 鏃?
銆銆dd 1-31 鏃?
銆銆wk 1-54 鍛?
銆銆dw 1-7 鍛ㄥ嚑
銆銆hh 0-23 灝忔椂
銆銆mi 0-59 鍒嗛挓
銆銆ss 0-59 縐?
銆銆ms 0-999 姣
銆銆鏃ユ湡杞崲
銆銆convert()
緙栬緫鏈緋葷粺銆佸叾浠栧嚱鏁?/span>
銆銆suser_name() 鐢ㄦ埛鐧誨綍鍚?
銆銆user_name() 鐢ㄦ埛鍦ㄦ暟鎹簱涓殑鍚嶅瓧
銆銆user 鐢ㄦ埛鍦ㄦ暟鎹簱涓殑鍚嶅瓧
銆銆show_role() 瀵瑰綋鍓嶇敤鎴瘋搗浣滅敤鐨勮鍒?
銆銆db_name() 鏁版嵁搴撳悕
銆銆object_name(obj_id) 鏁版嵁搴撳璞″悕
銆銆col_name(obj_id,col_id) 鍒楀悕
銆銆col_length(objname,colname) 鍒楅暱搴?
銆銆valid_name(char_expr) 鏄惁鏄湁鏁?a target="_blank">鏍囪瘑絎?/a>
錛?/span>.鍙抽敭鍦ㄦ竻闄ゆ棩蹇楃殑鏁版嵁搴擄紝濡?#8220;TestDB”錛岀偣鍑?/span>[鏂板緩鏌ヨ錛圦錛?/span>]
錛?/span>.杈撳叆浠ヤ笅SQL璇彞錛屽叾涓?#8220;TestDB”鏄暟鎹簱鍚嶇О
DUMP TRANSACTION TestDB WITH NO_LOG錛?鎵ц璇QL錛屾垚鍔熷悗緇х畫浠ヤ笅鎿嶄綔
錛?/span>.鍙抽敭璇ユ暟鎹簱鑺傜偣錛岀偣鍑?/span>[浠誨姟錛圱錛?/span>] -> [鏀剁緝錛圫錛?/span>] -> [鏂囦歡錛團錛?/span>]
錛?/span>.鍦ㄥ脊鍑虹殑“鏀剁緝鏂囦歡”瀵硅瘽妗嗕腑錛屽皢“鏂囦歡綾誨瀷錛圱錛?#8221;閫変負“鏃ュ織”錛屽皢“鏀剁緝鎿嶄綔”閫変腑“鍦ㄩ噴鏀炬湭浣跨敤鐨勭┖闂村墠閲嶆柊緇勭粐欏碉紙O錛?#8221;
錛?/span>.鍦?#8220;灝嗘枃浠舵敹緙╁埌錛圞錛?#8221;鏂囨湰妗嗕腑杈撳叆鍚庨潰鎻愮ず鐨勬渶灝忓ぇ灝忕殑鏁板鹼紝鐐瑰嚮[紜畾]鍗沖彲銆?/span>
1.娓呯┖鏃ュ織
DUMP TRANSACTION 搴撳悕 WITH NO_LOG
2.鎴柇浜嬪姟鏃ュ織錛?br />BACKUP LOG 搴撳悕 WITH NO_LOG
3.鏀剁緝鏁版嵁搴撴枃浠?濡傛灉涓嶅帇緙?鏁版嵁搴撶殑鏂囦歡涓嶄細鍑忓皬
浼佷笟綆$悊鍣?/span>--鍙抽敭浣犺鍘嬬緝鐨勬暟鎹簱--鎵鏈変換鍔?-鏀剁緝鏁版嵁搴?-鏀剁緝鏂囦歡
--閫夋嫨鏃ュ織鏂囦歡--鍦ㄦ敹緙╂柟寮忛噷閫夋嫨鏀剁緝鑷砐XM,榪欓噷浼氱粰鍑轟竴涓厑璁告敹緙╁埌鐨勬渶灝廙鏁?鐩存帴杈撳叆榪欎釜鏁?紜畾灝卞彲浠ヤ簡
--閫夋嫨鏁版嵁鏂囦歡--鍦ㄦ敹緙╂柟寮忛噷閫夋嫨鏀剁緝鑷砐XM,榪欓噷浼氱粰鍑轟竴涓厑璁告敹緙╁埌鐨勬渶灝廙鏁?鐩存帴杈撳叆榪欎釜鏁?紜畾灝卞彲浠ヤ簡
涔熷彲浠ョ敤SQL璇彞鏉ュ畬鎴?
--鏀剁緝鏁版嵁搴?/span>
DBCC SHRINKDATABASE(搴撳悕)
--鏀剁緝鎸囧畾鏁版嵁鏂囦歡,1鏄枃浠跺彿,鍙互閫氳繃榪欎釜璇彞鏌ヨ鍒?select * from sysfiles
DBCC SHRINKFILE(1)
4.涓轟簡鏈澶у寲鐨勭緝灝忔棩蹇楁枃浠?濡傛灉鏄痵ql 7.0,榪欐鍙兘鍦ㄦ煡璇㈠垎鏋愬櫒涓繘琛?
a.鍒嗙鏁版嵁搴?
浼佷笟綆$悊鍣?/span>--鏈嶅姟鍣?-鏁版嵁搴?-鍙抽敭--鍒嗙鏁版嵁搴?/span>
b.鍦ㄦ垜鐨勭數鑴戜腑鍒犻櫎LOG鏂囦歡
浼佷笟綆$悊鍣?/span>--鏈嶅姟鍣?-鏁版嵁搴?-鍙抽敭--闄勫姞鏁版嵁搴?/span>
姝ゆ硶灝嗙敓鎴愭柊鐨凩OG錛屽ぇ灝忓彧鏈?00澶欿
鎴栫敤浠g爜錛?
涓嬮潰鐨勭ず渚嬪垎紱?pubs錛岀劧鍚庡皢 pubs 涓殑涓涓枃浠墮檮鍔犲埌褰撳墠鏈嶅姟鍣ㄣ?br />a.鍒嗙
EXEC sp_detach_db @dbname = '搴撳悕'
b.鍒犻櫎鏃ュ織鏂囦歡
c.鍐嶉檮鍔?br />EXEC sp_attach_single_file_db @dbname = '搴撳悕',
@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/搴撳悕.mdf'
5.涓轟簡浠ュ悗鑳借嚜鍔ㄦ敹緙?鍋氬涓嬭緗?
浼佷笟綆$悊鍣?/span>--鏈嶅姟鍣?-鍙抽敭鏁版嵁搴?-灞炴?-閫夐」--閫夋嫨"鑷姩鏀剁緝"
--SQL璇彞璁劇疆鏂瑰紡:
EXEC sp_dboption '搴撳悕', 'autoshrink', 'TRUE'
6.濡傛灉鎯充互鍚庝笉璁╁畠鏃ュ織澧為暱寰楀お澶?br />浼佷笟綆$悊鍣?/span>--鏈嶅姟鍣?-鍙抽敭鏁版嵁搴?-灞炴?-浜嬪姟鏃ュ織
--灝嗘枃浠跺闀塊檺鍒朵負xM(x鏄綘鍏佽鐨勬渶澶ф暟鎹枃浠跺ぇ灝?
--SQL璇彞鐨勮緗柟寮?
alter database 搴撳悕 modify file(name=閫昏緫鏂囦歡鍚?maxsize=20)
浠ヤ笅涓烘棩蹇楀鐞嗘柟娉?br />涓鑸笉寤鴻鍋氱4,6涓ゆ
絎?姝ヤ笉瀹夊叏,鏈夊彲鑳芥崯鍧忔暟鎹簱鎴栦涪澶辨暟鎹?br />絎?姝ュ鏋滄棩蹇楄揪鍒頒笂闄?鍒欎互鍚庣殑鏁版嵁搴撳鐞嗕細澶辮觸,鍦ㄦ竻鐞嗘棩蹇楀悗鎵嶈兘鎭㈠.
濡傛灉鏄疐AT32,鍒欐暟鎹枃浠舵渶澶у彧鑳芥槸4G
鏀逛負NTFS鍒嗗尯鍒欐病鏈夎繖縐嶉檺鍒?/span>
alter database 搴撳悕 add file(NAME = 閫昏緫鏂囦歡鍚?FILENAME = 'c:/瀹為檯鏂囦歡鍚?ndf'
DBCC SHRINKDATABASE(upd364)
鍦板潃 http://blog.csdn.net/dmlk31/archive/2008/01/02/2010216.aspx
鏈枃鏀墮泦浜嗙綉涓婂叧浜嶭eft join , Right Join, Inner Join 鐨勭浉鍏沖唴瀹癸紝闈炲父瀹炵敤錛屽浜庣悊瑙e師鐞嗗拰鍏蜂綋搴旂敤閮藉緢鏈夊府鍔╋紒
涓.鍏堢湅涓浜涙渶綆鍗曠殑渚嬪瓙
渚嬪瓙
Table A
aid adate
1 a1
2 a2
3 a3
TableB
bid bdate
1 b1
2 b2
4 b4
涓や釜琛╝,b鐩歌繛鎺?瑕佸彇鍑篿d鐩稿悓鐨勫瓧孌?
select * from a inner join b on a.aid = b.bid榪欐槸浠呭彇鍑哄尮閰嶇殑鏁版嵁.
姝ゆ椂鐨勫彇鍑虹殑鏄?
1 a1 b1
2 a2 b2
閭d箞left join 鎸?
select * from a left join b on a.aid = b.bid
棣栧厛鍙栧嚭a琛ㄤ腑鎵鏈夋暟鎹?鐒跺悗鍐嶅姞涓婁笌a,b鍖歸厤鐨勭殑鏁版嵁
姝ゆ椂鐨勫彇鍑虹殑鏄?
1 a1 b1
2 a2 b2
3 a3 絀哄瓧絎?
鍚屾牱鐨勪篃鏈?strong>right join
鎸囩殑鏄鍏堝彇鍑篵琛ㄤ腑鎵鏈夋暟鎹?鐒跺悗鍐嶅姞涓婁笌a,b鍖歸厤鐨勭殑鏁版嵁
姝ゆ椂鐨勫彇鍑虹殑鏄?
1 a1 b1
2 a2 b2
4 絀哄瓧絎?b4
LEFT JOIN 鎴?LEFT OUTER JOIN銆?
宸﹀悜澶栬仈鎺ョ殑緇撴灉闆嗗寘鎷?LEFT OUTER 瀛愬彞涓寚瀹氱殑宸﹁〃鐨勬墍鏈夎錛岃屼笉浠呬粎鏄仈鎺ュ垪鎵鍖歸厤鐨勮銆傚鏋滃乏琛ㄧ殑鏌愯鍦ㄥ彸琛ㄤ腑娌℃湁鍖歸厤琛岋紝鍒欏湪鐩稿叧鑱旂殑緇撴灉闆嗚涓彸琛ㄧ殑鎵鏈夐夋嫨鍒楄〃鍒楀潎涓虹┖鍊?/p>
浜? left join/right join/inner join鎿嶄綔婕旂ず
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏薊浠ヤ笅涓虹綉涓婄殑涓鐐硅祫鏂欙冀錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞
LEFT JOIN鎿嶄綔鐢ㄤ簬鍦ㄤ換浣曠殑 FROM 瀛愬彞涓紝緇勫悎鏉ユ簮琛ㄧ殑璁板綍銆備嬌鐢?LEFT JOIN 榪愮畻鏉ュ垱寤轟竴涓乏杈瑰閮ㄨ仈鎺ャ傚乏杈瑰閮ㄨ仈鎺ュ皢鍖呭惈浜嗕粠絎竴涓紙宸﹁竟錛夊紑濮嬬殑涓や釜琛ㄤ腑鐨勫叏閮ㄨ褰曪紝鍗充嬌鍦ㄧ浜屼釜錛堝彸杈癸級琛ㄤ腑騫舵病鏈夌浉絎﹀肩殑璁板綍銆?
璇硶錛?/span>
FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
璇存槑錛?/span>
鈶犮table1, table2鍙傛暟鐢ㄤ簬鎸囧畾瑕佸皢璁板綍緇勫悎鐨勮〃鐨勫悕縐般?br />
鈶°field1, field2鍙傛暟鎸囧畾琚仈鎺ョ殑瀛楁鐨勫悕縐般備笖榪欎簺瀛楁蹇呴』鏈夌浉鍚岀殑鏁版嵁綾誨瀷鍙婂寘鍚浉鍚岀被鍨嬬殑鏁版嵁錛屼絾瀹冧滑涓嶉渶瑕佹湁鐩稿悓鐨勫悕縐般?br />
鈶€compopr鍙傛暟鎸囧畾鍏崇郴姣旇緝榪愮畻絎︼細"="錛?"<"錛?">"錛?"<="錛?">=" 鎴?"<>"銆?br />
鈶c濡傛灉鍦↖NNER JOIN鎿嶄綔涓鑱旀帴鍖呭惈Memo 鏁版嵁綾誨瀷鎴?OLE Object 鏁版嵁綾誨瀷鏁版嵁鐨勫瓧孌碉紝灝嗕細鍙戠敓閿欒銆?/span>
涓?鐩稿叧鐨勫鏉傜殑瑙i噴鍜屽疄渚?/font>
綆浠? 澶栭儴榪炴帴鍜岃嚜鑱旀帴 inner join(絳夊艱繛鎺? 鍙繑鍥炰袱涓〃涓仈緇撳瓧孌電浉絳夌殑琛?left join(宸﹁仈鎺? 榪斿洖鍖呮嫭宸﹁〃涓殑鎵鏈夎褰曞拰鍙寵〃涓仈緇撳瓧孌電浉絳夌殑璁板綍 right join(鍙寵仈鎺? 榪斿洖鍖呮嫭鍙寵〃涓殑鎵鏈夎褰曞拰宸﹁〃涓仈緇撳瓧孌電浉絳夌殑璁板綍 on 鎸囧畾琛ㄩ棿鑱旂粨瀛楁鍙婂叾鍏崇郴鐨勭瓑鍙?"=" 琛ㄨ揪寮? 榪斿洖 true 鎴?false. 褰撹〃杈懼紡榪斿洖 true 鏃? 鍒欐煡璇腑鍖呭惈璇ヨ褰? ! 澶栭儴榪炴帴鍙兘鎿嶄綔宸插瓨鍦ㄤ簬鏁版嵁搴撲腑鐨勬暟鎹?br />
update (ctarticle as a left join ctclass as c on a.classid = c.classid) left join cttag as b on a.articleid = b.articleid
set tag=tag+' ', b.articleid=a.articleid, b.classid=a.classid, b.nclassid=a.nclassid
where a.classid=23 and a.nclassid=0 and tagid is not null
update (ctarticle as a left join (ctnclass as c left join ctclass as d on c.classid = d.classid) on a.nclassid = c.nclassid and a.classid = c.classid) left join cttag as b on a.articleid = b.articleid set tag=d.class+' '+c.nclass, b.articleid=a.articleid, b.classid=a.classid, b.nclassid=a.nclassid where a.classid=23 and a.nclassid=197;
鏇存柊鎿嶄綔
宸﹁繛鎺ヤ腑鏁版嵁鐨勭瓫閫?
insert into cttag(articleid,classid,nclassid) select a.articleid,a.classid,a.nclassid from ctarticle a left join cttag b on a.articleid=b.articleid where b.articleid is null
//鏈鍙ュ姛鑳戒負, 鏄劇ず涓昏〃鐨勫叏閮ㄥ唴瀹? 鎻掑叆鏁版嵁鍒板壇琛ㄤ腑娌℃湁鐨勬暟鎹?
//涓昏浣滅敤涓? 璁╂暟鎹噺灝戝啑浣?
涓婁緥涓殑寤剁畫
select a.*, b.*, c.*, d.* from cttag as d left join ((ctarticle as a left join ctclass as b on a.classid=b.classid) left join ctnclass as c on a.nclassid=c.nclassid) on d.articleid=a.articleid;
鏄劇ず鏂囩珷琛ㄤ腑鐨勫叏閮? 璋冪敤綾誨埆琛ㄤ腑鐨勬爮鐩?
select a.*, b.*, c.* from (ctarticle a left join ctclass b on a.classid=b.classid) left join ctnclass c on a.nclassid=c.nclassid
//浣滅敤, 鏈夋椂鍦ㄦ枃绔犺〃涓寘鍚簡鍦ㄤ釜鍒被鍒〃涓病鏈夌殑鏁版嵁, 鐢ㄨ繖涓娉曞彲浠ヨ鍑烘枃绔犺〃鐨勫叏閮ㄦ暟鎹?
//a 涓?鏂囩珷琛? b 涓轟富綾誨埆, c 涓哄瓙綾誨埆
鍚屼笂渚? 閫夋嫨榪藉姞鏁版嵁鏃跺姞涓婄┖鏍?
insert into cttag(articleid,classid,nclassid,tag) select a.articleid,a.classid,a.nclassid,d.class+' '+c.nclass
from (ctarticle as a left join (ctnclass c left join ctclass d on c.classid=d.classid) on a.classid=c.classid and a.nclassid=c.nclassid) left join cttag as b on a.articleid = b.articleid where a.classid=4 and a.nclassid=154;
榪炴帴n涓〃, 騫惰拷鍔犳暟鎹埌鍏朵腑涓涓〃, n=4
insert into cttag(articleid,classid,nclassid,tag) select a.articleid,a.classid,a.nclassid,d.class+c.nclass
from (ctarticle as a left join (ctnclass c left join ctclass d on c.classid=d.classid) on a.classid=c.classid and a.nclassid=c.nclassid) left join cttag as b on a.articleid = b.articleid where a.classid=1 and a.nclassid=1;
//瑙h
鎻掑叆鍒?琛?(鏍?,鏍?,鏍?,鏍?)
閫夋嫨 鍒悕a.鏍?, 鍒悕a.鏍?, 鍒悕a.鏍?, 鍒悕d.鏍? 鍔犱笂 鍒悕c.鏍?
浠?(琛? 鍒悕a 宸﹁繛鎺?(琛? 鍒悕c 宸﹁繛鎺?琛? 鍒悕d 鍦?鍒悕c.鏍? 絳変簬 鍒悕d.鏍?) 鍦?鍒悕a.鏍? 絳変簬 鍒悕c.鏍? 鍜?鍒悕a.鏍?=鍒悕c.鏍?) 宸﹁繛鎺?琛? 鍒悕b 鍦?鍒悕a.鏍? 絳変簬 鍒悕b.鏍? 鍦ㄩ偅閲?鍒悕a.鏍?=1 鍜?鍒悕a.鏍?=1
榪炴帴涓や釜琛? 騫惰拷鍔犳暟鎹埌鍏朵腑涓涓〃
insert into cttag(articleid,classid,nclassid)
select a.articleid,a.classid,a.nclassid
from ctarticle as a left join cttag as b on a.articleid = b.articleid where a.classid=1 and a.nclassid=1;
//瑙h
鎻掑叆鍒?琛?(鏍?,鏍?,鏍?)
閫夋嫨 鍒悕a.鏍?, 鍒悕a.鏍?, 鍒悕a.鏍?
浠?琛? 鍒悕a 宸﹁繛鎺?琛? 鍒悕b 鍦?鍒悕a.鏍? 絳変簬 鍒悕b.鏍? 鍦ㄩ偅閲?鍒悕a.鏍?=1 鍜?鍒悕a.鏍?=1
宸﹁繛鎺?
鍚屾涓よ〃鐨勬暟鎹?
update ctarticle a inner join cttag b on a.articleid = b.articleid set b.classid=a.classid, b.nclassid=a.nclassid;
//瑙h
鏇存柊 琛? 鍒悕a 鑱旀帴 琛? 鍒悕2 鍦?鍒悕a.鏍? 絳変簬 鍒悕b.鏍? 璁劇疆 鍒悕b.鏍? 鏇存柊涓?鍒悕a.鏍?, 鍒悕b.鏍? 鏇存柊涓?鍒悕a.鏍?
鍙沖榪炴帴
select a.*, b.* from bunclass a right join ctclass b on a.classid=b.classid where a.nclassid=20
鏌ヨ鍒悕 a,b 琛? 鍙尮閰?b 琛ㄤ腑鐨勫唴瀹?
娣誨姞鏁版嵁鍒拌繛鎺ヨ〃涔嬩竴
insert into cttag ( tag, articleid ) select top 1 b.tag, a.articleid from ctarticle as a left join cttag as b on a.articleid = b.articleid where a.articleid order by a.articleid desc;
鍙橀氫腑鐨勭敤娉曚簩
insert into bureply
select b.*, a.classid, a.nclassid
from article as a inner join reply as b on a.articleid = b.articleid
where classid=50;
瀹為檯搴旂敤涓殑鍙橀?
insert into butag ( tag, articleid, classid, nclassid)
select b.tag, a.articleid, a.classid, a.nclassid
from article as a inner join tag as b on a.articleid = b.articleid
where classid=24;
娣誨姞鏁版嵁鍒板叾浠栬〃
insert into butag ( tag, articleid )
select b.tag, a.articleid
from article as a inner join tag as b on a.articleid = b.articleid
where a.articleid<>false;
//瑙h
娣誨姞鍒?鎺ユ敹琛?鍒?,鍒?)
閫夋嫨 鍒悕b.鍒?, 鍒悕a.鍒?
浠?琛? 琛ㄥ悕a 鑱旀帴 琛? 琛ㄥ悕b 鍦?鍒悕a.鍒梒 絳変簬 鍒悕b.鍒梒
鍦ㄥ摢閲?鍒悕a.鍒梒 涓嶇瓑浜?娌℃湁
瀹為檯搴旂敤涓殑鍙橀?
select b.tag, a.articleid, a.classid, a.nclassid
from article as a inner join tag as b on a.articleid = b.articleid
where a.classid=24;
鏌ヨ
select b.tag, a.articleid
from article as a inner join tag as b on a.articleid = b.articleid
where a.articleid<>false;
//瑙h
閫夋嫨 鍒悕b.鍒? 鍒悕a.鍒?
浠?琛? 鍒悕a 鑱旀帴 琛? 鍒悕b 鍦?鍒悕a.鍒梒 = 鍒悕b.鍒梒
鍦ㄥ摢閲?鍒悕a.鍒梒 涓嶇瓑浜?娌℃湁
娉? as 涓嶆槸蹇呰
FOR temp2 IN EXECUTE'SELECT CAST(x5.no AS varchar), tbl_headmaterial.material_name,tbl_headmaterial.material_unit,
CAST(round(COALESCE(CAST(x1.count AS numeric),0),3) AS varchar) ,
CAST(round(COALESCE(CAST(x2.count AS numeric),0),3) AS varchar) ,
CAST(round(COALESCE(CAST(x3.count AS numeric),0),3) AS varchar) ,
CAST(round(COALESCE(CAST(x4.count AS numeric),0),3) AS varchar) ,
CAST(round(COALESCE(CAST(x1.count AS numeric),0)+COALESCE(CAST(x2.count AS numeric),0)-COALESCE(CAST(x3.count AS numeric),0)-COALESCE(CAST(x4.count AS numeric),0),3) AS varchar) FROM
(SELECT DISTINCT no AS no FROM (SELECT CAST(no as int4) as no FROM x1 UNION SELECT CAST(no as int4) AS no FROM x2 UNION SELECT CAST(no as int4) as no FROM x3 UNION SELECT CAST(no as int4) as no FROM x4)AS x6) AS x5
LEFT JOIN x1 ON x5.no = x1.no LEFT JOIN x2 ON x5.no = x2.no LEFT JOIN x3 ON x5.no = x3.no LEFT JOIN x4 on x5.no = x4.no LEFT JOIN tbl_headmaterial on x5.no = tbl_headmaterial.material_no'
LOOP
RETURN NEXT temp2;
END LOOP;
EXECUTE 'DROP table x1';
EXECUTE 'DROP table x2';
EXECUTE 'DROP table x3';
EXECUTE 'DROP table x4';
RETURN;
END;
$$
language plpgsql;
select * from fun1('2007-12-30') store (no varchar,name varchar,unit varchar ,x1 varchar,x2 varchar,x3 varchar,x4 varchar,x5 varchar);
琛ˋ2
id B
2 22
3 33
5 55
琛ˋ3
id C
1 111
2 222
7 777
琛ˋ4
id D
5 5555
6 6666
7 7777
鐜板湪瑕佸啓涓煡璇紝緇撴灉涓猴紝鎬庝箞鍐欏憿
id A B C D
1 1 0 111 0
2 2 22 222 0
3 3 33 0 0
5 0 55 0 5555
6 0 0 0 6666
7 0 0 777 7777
select a5.id,COALESCE(a1."A",0) as A,COALESCE(a2."B",0) as b,
COALESCE(a3."C",0) as c,COALESCE(a4."D",0) as d from
(select distinct id as id from (select id from a1 union
select id from a2 union select id from a3
union select id from a4)as a6) as a5 left join a1 on a5.id = a1.id left join a2 on a5.id = a2.id left join a3 on a5.id = a3.id
left join a4 on a5.id = a4.id
渚嬪瓙涓
CREATE OR REPLACE FUNCTION instr(character varying, integer)
RETURNS integer AS
$BODY$
declare
str alias for $1;
ind alias for $2;
begin
return ind+100;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
> select instr('aaa',100) ;
> 200
渚嬪瓙浜?/font>
濡傛灉涓涓?PL/pgSQL 鍑芥暟鐨勮繑鍥炵被鍨嬪0鏄庝負涓涓鎬佺被鍨?錛?tt class=TYPE> 鎴栬?錛夛紝閭d箞灝變細鍒涘緩涓涓壒孌婄殑鍙傛暟錛?銆傚畠鐨勬暟鎹被鍨嬫槸鍑芥暟鐨勫疄闄呰繑鍥炵被鍨嬶紝鍜屼粠瀹為檯杈撳叆綾誨瀷鎺ㄥ鎺ㄥ綾誨瀷涓鏍?錛堝弬闃?Section 31.2.5錛夈?榪欐牱灝卞厑璁稿嚱鏁拌闂畠鐨勫疄闄呰繑鍥炵被鍨嬶紝鍍?Section 35.4.2 閲屾樉紺虹殑閭f牱銆? 鍒濆鍖栦負絀猴紝騫朵笖鍙互琚嚱鏁頒慨鏀癸紝鎵浠ワ紝濡傛灉闇瑕侊紝瀹冨彲浠ョ敤浜庝繚瀛樿繑鍥炲鹼紝 铏界劧榪欏茍闈炲繀欏葷殑銆?tt class=LITERAL> 榪樺彲浠ョ粰浜堜竴涓埆鍚嶃傛瘮濡傦紝榪欎釜鍑芥暟鍙互鍦ㄤ換浣曟湁 鎿嶄綔絎︾殑鏁版嵁綾誨瀷涓婅繍杞細
create or replace function addT (v1 anyelement, v2 anyelement, v3 anyelement)
returns anyelement as $$
declare
res alias for $0;
begin
res := v1+v2+v3;
return res;
end;
$$language plpgsql;
> select addT(100,200,300)
> 600
渚嬪瓙涓?/font>
variable%TYPE
鎻愪緵涓涓彉閲忔垨鑰呰〃瀛楁鐨勬暟鎹被鍨嬨?浣犲彲浠ョ敤榪欎釜澹版槑灝嗚淇濆瓨鏁版嵁搴撴暟鍊肩殑鍙橀噺銆傛瘮濡傦紝鍋囧浣犲湪 琛ㄩ噷闈㈡湁涓涓瓧孌靛彨 銆傝澹版槑涓涓拰 綾誨瀷鐩稿悓鐨勫彉閲忥紝浣犲彲浠ュ啓錛?
user_id users.user_id%TYPE;
閫氳繃浣跨敤 錛屼綘蹇呴』鐭ラ亾浣犲紩鐢ㄧ殑緇撴瀯鐨勬暟鎹被鍨嬶紝 騫朵笖錛屾渶閲嶈鐨勬槸錛屽鏋滆寮曠敤欏圭殑鏁版嵁綾誨瀷鍦ㄥ皢鏉ュ彉鍖栦簡錛堟瘮濡傦細浣犳妸 鐨勭被鍨嬩粠 鏀規垚 錛夛紝浣犱篃涓嶉渶瑕佷慨鏀逛綘鐨勫嚱鏁板畾涔夈?
瀵瑰鎬佺殑鍑芥暟鐗瑰埆鏈夌敤錛屽洜涓哄唴閮ㄥ彉閲忕殑鏁版嵁綾誨瀷鍙兘鍦ㄤ笉鍚岃皟鐢ㄤ腑鏄笉涓鏍風殑銆?鎴戜滑鍙互閫氳繃緇欏嚱鏁扮殑鍙傛暟鎴栬呯粨鏋滃崰浣嶇闄勫姞 鐨勬柟娉曟潵鍒涘緩鍚堥傜殑鍙橀噺銆?/p>
渚嬪瓙鍥?/font>
琛岀被鍨?br>name table_name%ROWTYPE;
name composite_type_name;
涓涓鍚堢被鍨嬪彉閲忓彨鍋?em class=FIRSTTERM>琛?/em>鍙橀噺錛堟垨鑰?em class=FIRSTTERM>row-type鍙橀噺錛夈?榪欐牱鐨勪竴涓彉閲忓彲浠ヤ繚瀛樹竴嬈?tt class=COMMAND>鎴栬?鍛戒護緇撴灉鐨勫畬鏁翠竴琛岋紝鍙鍛戒護鐨勫瓧孌甸泦鍖歸厤璇ュ彉閲忓0鏄庣殑綾誨瀷銆?琛屾暟鍊肩殑鐙珛鐨勫瓧孌墊槸浣跨敤甯哥敤鐨勭偣琛ㄧず娉曡闂殑錛屾瘮濡?銆?
涓涓鍙橀噺鍙互澹版槑涓哄拰涓涓幇鏈夌殑琛ㄦ垨鑰呰鍥劇殑琛岀被鍨嬬浉鍚岋紝鏂規硶鏄嬌鐢?table_name%ROWTYPE 琛ㄧず娉曪紱 鎴栬呬綘涔熷彲浠ュ0鏄庡畠鐨勭被鍨嬫槸涓涓鍚堢被鍨嬬殑鍚嶅瓧銆傦紙鍥犱負姣忎釜琛ㄩ兘鏈変竴涓浉鍏寵仈鐨勫悓鍚嶆暟鎹被鍨嬶紝 鍦?PostgreSQL 閲屽疄鍦ㄦ槸鏃犳墍璋撲綘鍐欎笉鍐?銆備絾鏄湁 鐨勫艦寮忕Щ妞嶆ф洿濂姐傦級
鍑芥暟鐨勫弬鏁板彲浠ユ槸澶嶅悎綾誨瀷錛堣〃鐨勫畬鏁磋錛夈傝繖涓椂鍊欙紝 瀵瑰簲鐨勬爣璇嗙 $n 灝嗘槸涓涓鍙橀噺錛屽茍涓斿彲浠ヤ粠涓夊彇瀛楁錛屾瘮濡?銆?
鍦ㄤ竴涓綾誨瀷鐨勫彉閲忎腑錛屽彧鍙互璁塊棶鐢ㄦ埛瀹氫箟鐨勮〃涓鐨勫睘鎬э紝 涓嶅寘鎷?OID 鎴栬呭叾浠栫郴緇熷睘鎬э紙鍥犱負璇ヨ鍙兘鏉ヨ嚜涓涓鍥撅級銆?璇ヨ綾誨瀷鐨勬暟鎹煙緇ф壙琛ㄤ腑璞?n) 榪欑綾誨瀷瀛楁鐨勫昂瀵稿拰綺懼害銆?
榪欓噷鏄竴涓嬌鐢ㄥ鍚堢被鍨嬬殑渚嬪瓙錛?br>CREATE TABLE tbl_store1
(
store_no integer NOT NULL DEFAULT nextval('tbl_store1_sq'::regclass),
parent_id integer,
"type" integer,
"values" real,
CONSTRAINT tbl_store1_pkey PRIMARY KEY (store_no)
)
鎻掑叆妞?1 1 1 1;
CREATE OR REPLACE FUNCTION merge(t_row tbl_store1)
RETURNS text AS
$BODY$
declare
t2_row tbl_store1%rowtype;
begin
select * into t2_row from tbl_store1 ;
return t_row.values || t2_row.values;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
> select merge(t.*) from tbl_store1 t ;
> 11
渚嬪瓙浜?/font>
/**
create or replace function logfun1(log text) returns timestamp as $$
begin
insert into tbl_store1 values(3,1,1,1,'now');
return 'now';
end;
$$ language plpgsql;
select logfun1('test');
**/
create or replace function logfun2(log text) returns timestamp as $$
declare
ctime timestamp;
begin
ctime :='now';
insert into tbl_store1 values(6,2,1,1,ctime);
return ctime;
end;
$$ language plpgsql;
select logfun2('aaa');
鍦? 鐨勫疄渚嬮噷錛?PostgreSQL 鐨勪富鍒嗘瀽鍣ㄥ湪涓? 鍑嗗鎵ц璁″垝鐨勬椂鍊欑煡閬撳瓧涓? 搴旇瑙i噴鎴? 綾誨瀷錛屽洜涓? 鐨勭洰鏍囧瓧孌靛氨鏄綾誨瀷銆傛墍浠ワ紝瀹冧細鍦ㄨ繖涓椂鍊欎粠榪欎釜瀛椾覆涓綆椾竴涓父閲忥紝 鐒跺悗鍦ㄨ鏈嶅姟鍣ㄧ殑鏁翠釜鐢熷瓨鏈熶腑鐨勬墍鏈? 璋冪敤涓嬌鐢ㄨ繖涓父閲忋備笉娑堣錛岃繖鍙笉鏄▼搴忓憳鎯寵鐨勩?
鍦?tt class=FUNCTION>閲岋紝 PostgreSQL 鐨勪富鍒嗘瀽鍣ㄥ茍涓嶇煡閬? 搴旇杞崲鎴愪粈涔堢被鍨嬶紝 鍥犳瀹冭繑鍥炰竴涓寘鍚瓧絎︿覆 鐨勭被鍨嬩負 鐨勬暟鎹箋?鍦ㄩ殢鍚庣粰灞閮ㄥ彉閲?tt class=VARNAME>璧嬪兼椂錛?PL/pgSQL瑙i噴鍣ㄩ氳繃璋冪敤 鍜?tt class=FUNCTION> 鎶婅繖涓瓧絎︿覆杞崲鎴? 綾誨瀷鐨勫彉閲忋?鍥犳錛岃綆楀嚭鐨勬椂鎴沖氨浼氭寜鐓х▼搴忓憳甯屾湜鐨勯偅鏍峰湪姣忔鎵ц鐨勬椂鍊欓兘鏇存柊銆?
璁板綍鍙橀噺鐨勬槗鍙樻уぉ鎬у湪榪欑緇撳悎涓婃彁鍑轟簡涓涓棶棰樸?鍦ㄤ竴涓褰曞彉閲忓湪璇彞鎴栬呰〃杈懼紡涓嬌鐢ㄦ椂錛?璇ュ瓧孌電殑鏁版嵁綾誨瀷鍦ㄥ悓涓涓〃杈懼紡鐨勪笉鍚岃皟鐢ㄦ湡闂翠笉鑳戒慨鏀癸紝 鍥犱負璇ヨ〃杈懼紡鍑嗗浣跨敤鐨勬槸榪愯絎竴嬈″埌杈捐琛ㄨ揪寮忔椂鍑虹幇鐨勬暟鎹被鍨嬨?鍦ㄥ啓澶勭悊瓚呰繃涓涓〃鐨勪簨浠剁殑瑙﹀彂鍣ㄨ繃紼嬬殑鏃跺欎竴瀹氳鎶婅繖涓浣忋傦紙蹇呰鏃跺彲浠ョ敤緇曞紑榪欎釜闂銆傦級
渚嬪瓙鍏?/font>
create or replace function tSInto () returns varchar as
$$
declare rec record;
begin
select into rec * from tbl_store1 where values =1;
if not found then
return 'test';
else
return 'tttt';
end if;
end;
$$
language plpgsql;
select tSInto();
create or replace function tSInto () returns varchar as
$$
declare rec record;
begin
select into rec * from tbl_store1 where values =1;
if rec.values isNULL then
return 'okkkkkkk';
else return 'test';
end if ;
end;
$$
language plpgsql;
select tSInto();
渚嬪瓙涓?br>create or replace function cur1 () returns text as
$$
declare
curs1 CURSOR for select * from tbl_store1;
res text :='';
a varchar;
b varchar;
c varchar;
d varchar;
e varchar;
begin
OPEN curs1;
loop
fetch curs1 into a,b,c,d,e;
if not found then
return 'error';
exit;
end if;
res = 'test'||res;
end loop;
close curs1;
return res;
end;
$$
language plpgsql;
CREATE OR REPLACE FUNCTION cur1()
RETURNS text AS
$BODY$
declare
curs1 CURSOR for select * from tbl_store1;
res text :='';
a varchar;
b varchar;
c varchar;
d varchar;
e varchar;
begin
OPEN curs1;
loop
fetch curs1 into a,b,c,d,e;
if (found) then
if (a is null) then
a = '';
end if ;
if (b is null) then
b = '';
end if ;
if (c is null) then
c = '';
end if ;
if (d is null) then
d = '';
end if ;
if (e is null) then
e = '';
end if ;
res = res || a || b || c || d || e;
else
exit;
end if;
end loop;
close curs1;
return res;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
select cur1();