锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
http://www.oracle.com/
instantclient-basic-win32-11.2.0.1.0.zip
瑙e帇鍚?/strong>鍦ㄥ鎴風鏍圭洰褰曞垱寤簍nsnames.ora鏂囦歡
XE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 16.157.1.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE1)
)
XE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 16.157.1.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID= XE2)
)
閰嶇疆PL/SQL Developer
閰嶇疆PL/SQL鐨刼racle鐨勭洰褰曚綅緗?/strong>
tool-->preferences-->
鍦≒L/SQL Developer瀹夎鐩綍涓嬪緩绔嬩竴涓猻tart.bat鑴氭湰鏂囦歡
璁劇疆鐜鍙橀噺
set path=C:\instantclient_11_2
set ORACLE_HOME=C:\instantclient_
set TNS_ADMIN=C:\instantclient_11_
set NLS_LANG=AMERICAN_AMERICA.
start PLSQLDev.exe
鍏蜂綋璇存槑NLS_LANG鐨勫彇鍊?br />
鏍煎紡:NLS_LANG=language_territory.charset
鍙栧兼潵婧?select * from v$nls_parameters
鏌ヨnls鐨勫弬鏁幫紝鑾峰緱鏁版嵁搴撴湇鍔″櫒绔殑瀛楃緙栫爜
,闇瑕佷繚璇佽璁劇疆瀹㈡埛绔瓧絎﹂泦涓庢湇鍔″櫒绔瓧絎﹂泦涓鑷?
NLS_LANGUAGE
NLS_CHARACTERSET
void include(ServeltRequest req,ServletResponse res)
鍙互閫氳繃涓ょ鏂瑰紡寰楀埌RequestDispatcher:
1銆丼ervletContext.getRequestDispatcher(String path);
鍏朵腑榪欓噷鐨刾ath蹇呴』寮濮嬩負"/"錛屽嵆榪欓噷鐨刾ath蹇呴』鐩稿浜巆ontext鐨剅oot.
2銆丼erveltRequest.getRequestDispatcher(String path)
榪欓噷鐨刾ath鍙互涓虹浉瀵硅礬寰?濡傛灉path寮濮嬩負"/",鍒欎篃璁や負鏄粠context鐨剅oot寮濮嬬殑銆?br />浜屻丷edirect鐢盚ttpServletResponse.sendRedirect(String location)鏉ユ敮鎸?br />宸埆錛?br />涓変釜閮藉彲浠ュ鐢ㄦ埛鐨剅equest榪涜杞彂錛屼絾鏄繕鏄湁璁稿鐨勪笉鍚岋紝宸埆鏈涓昏闆嗕腑鍦ㄥ涓嬪嚑涓柟闈細
1銆乫orward涓巌nclude鍏變酣Request鑼冨洿鍐呯殑瀵硅薄,鑰宺edirect鍒欎笉琛岋紝鍗籌細濡傛灉涓涓猨avabean琚0鏄庝負request鑼冨洿鐨勮瘽錛屽垯琚玣orward鍒扮殑璧勬簮涔熷彲浠ヨ闂繖涓猨avabean,鑰宺edriect鍒欎笉琛屻?br />2銆乫orward涓巌nclude鍩烘湰涓婇兘鏄漿鍙戝埌context鍐呴儴鐨勮祫婧愶紝鑰宺edirect鍙互閲嶅畾鍚戝埌澶栭儴鐨勮祫婧?濡傦細 req.sendRedriect("
浠ヤ笂鏉ユ簮 http://www.cn-java.com/target/news.php?news_id=3176
鍏?br />struts-config.xml
<forward name="succ"聽 path="/pages/dynabean2.jsp" redirect="true"/>
璁劇疆redirect="true"鍚?杞悜鐩爣欏甸潰鏃舵晥鏋滃拰redirect涓鑷淬?br />
2006騫?鏈?4鏃?涓婂崍 10:15:00
鍙戣〃鑰咃細鐜嬪炕錛孏oogle 宸ョ▼甯?
鏈榪戜笁騫翠綔涓?Google錛堣胺姝岋級鐨勮蔣浠跺伐紼嬪笀錛屾垜姣忓懆浼氬府浜轟簨閮ㄩ棬瀹℃煡綆鍘嗭紝鍐沖畾瑕佷笉瑕佺粰浠栦滑闈㈣瘯銆侴oogle 榪欏嚑騫寸殑鍙戝睍璁╁緢澶氳澶氫紭縐鐨勫伐紼嬪笀閮藉墠鏉ョ敵璇楓傚埌鐩墠涓烘錛屾垜宸茬粡鐪嬩簡涓婂崈浠界畝鍘嗭紝鏈変簺綆鍘嗙暀涓嬬殑鍗拌薄姣斿埆鐨勫ソ寰堝銆傚挨鍏舵槸鏈榪戜翰鎴氭湅鍙嬪父甯擱棶鎴戝浣曚慨鏀逛粬浠殑綆鍘嗭紝鎵浠ユ垜縐瘡浜嗕竴浜涘父瑙佺殑閿欒閬垮厤鐨勬彁璁紝鍦ㄦ璺熷ぇ瀹朵氦嫻佷竴涓嬨?/p>
1錛庤皥鍒頒綘鍋氳繃鐨勬妧鏈椂錛屽簲璇ユ彁鍒扮敤鐨勭▼搴忚璦銆佷綘鐨勪釜浜鴻礎鐚拰浜у搧緇嗚妭銆?/p>
鏈夋椂鎴戠湅鍒版湁浜烘妸榪囧幓鐨勭粡楠屽湪綆鍘嗕笂涓絎斿甫榪囷紝姣斿璇達細
鈥?鍦ㄤ笁浜哄皬緇勯噷錛屼負鐢靛瓙閭歡杞歡鍐欎簡浜?features銆?/p>
榪欐槸榪滆繙涓嶅鐨勶紝鐪嬬畝鍘嗙殑浜哄笇鏈涗簡瑙d綘鍋氱殑宸ヤ綔鐨勯毦搴﹀拰瀵規湰鍏徃鏈夊灝戣仈緋伙紝鎵浠ヤ綘鏈濂藉啓鐨勫叿浣撲竴浜涖傝濡傦細
鈥?鐢?C++ 璇█鍐欎簡緗戠粶鐢靛瓙閭歡鐨勮嚜鍔?backups銆傚湪涓変漢灝忕粍閲岋紝涓撻棬璐熻矗璁捐鍜屽啓鍌ㄥ瓨鏈嶅姟鍣ㄣ備粠璁捐寮濮嬶紝 涓騫村悗鎶婅繖涓姛鑳?feature 鐨勭敤鎴鋒帹鍒頒簡涓夊崈銆?/p>
2錛庡璁蹭簨瀹? 灝戠敤褰㈠璇嶃?/p>
鐪嬬畝鍘嗙殑浜鴻浣犵殑綆鍘嗘椂錛岄渶瑕佸仛鍒ゆ柇錛屾墍浠ュ湪綆鍘嗛噷闇瑕佷簨瀹炲拰鏁扮洰銆傚鏋滀綘鍐欌滆繀閫熺殑鎻愰珮浜嗚蔣浠剁殑鎿嶄綔鏁堢巼鈥濓紝鐪嬬畝鍘嗙殑浜哄緢闅懼垽鏂綘鎴愬氨鐨勯毦搴︺備絾濡傛灉浣犲啓鈥滃湪3涓槦鏈熷唴錛屾妸杞歡鐨勬搷浣滄晥鐜囨彁楂樹簡40%鈥?灝卞ソ澶氫簡銆?/p>
鏈変簺璋﹁櫄鐨勬湅鍙嬩滑涓嶆効鎰忔妸璇濊婊★紝鎵浠ヤ綘涔熷彲浠ョ敤榪欎釜鍔炴硶銆備綘濡傛灉璇磋嚜宸扁滅獊鍑衡濇垨鈥滃湪欏圭洰涓婂父甯歌璇峰幓鏁戠伀鈥濓紝鍚搗鏉ラ毦鍏嶄細鏈夌偣楠勫偛銆備絾浣犱篃鍙互鐢ㄤ笉鑳藉惁璁ょ殑浜嬪疄鏉ヨ鏄庝綘鐨勮鐐癸紝濡傗溿婄航綰︽棩鎶ャ嬭瘎榪欎釜浜у搧涓衡樼獊鍑衡欌濓紝鎴栤滃姞鍏ヤ簡涓変釜鍘熸湰宸茶惤鍚庝簬璁″垝鐨勯」鐩皬緇勶紝浣嗙粡榪囧姫鍔涘拰緇勫憳涓璧鋒妸瀹冧滑閮芥寜鏃跺畬鎴愪簡銆傗?/p>
3錛庝綘鑾峰緱鐨勫銆佸晢涓氱殑鑽h獕鎴栬〃鎵佸彈鐢ㄦ埛嬈㈣繋鐨勪駭鍝佸拰浣犲仛榪囩殑鏈夐毦搴︾殑涓氫綑欏圭洰閮借鍖呮嫭鍦ㄧ畝鍘嗛噷銆?/p>
鎴戞湁浣嶆湅鍙嬪湪紜呰胺涓涓憲鍚嶇殑紜歡鍏徃鍋氫簡鍏勾錛屽ス璁捐鐨?IP phone錛堢綉緇滅數璇濓級涓哄叕鍙歌禋浜嗕笂浜跨殑鏀跺叆錛岃鍏徃涓庡晢涓氭姤閬撳嬈¤瘎浜嗗銆傛垜鏈変竴嬈″湪鏃ч噾灞辯殑楂橀熷叕璺笂椹捐濺鏃訛紝鐪嬪埌璺竟鏈夊ス浜у搧鐨勫箍鍛婄墝錛涜繕鏈変竴嬈℃垜鍘諱笂嫻峰害鍋囨椂錛岀珶鐒跺彂鐜頒笂嫻峰叕璺竟涓婁篃鏈夛紒
涓嶄箙錛岃繖浣嶆湅鍙嬪喅瀹氭崲宸ヤ綔錛岃鎴戠湅鐪嬪ス鐨勭畝鍘嗐傛垜鎯婅鐨勫彂鐜幫紝濂瑰眳鐒惰交鎻忔貳鍐欑殑鍐欎簡涓鍙?- "1998 鈥?2004錛氱綉緇滅數璇濅駭鍝佺殑紜歡宸ョ▼甯堢粍闀? 鍜屽ス鐨勮亴璐c?/p>
"浜у搧璧㈢殑濂栧憿錛熷畠涓哄叕鍙歌禋鐨勯挶鍛紵" 鎴戣拷闂埌銆?/p>
"閭d簺涔熻鍐欏悧錛? 濂硅銆?/p>
褰撶劧璇ュ啓銆?/p>
鏈変漢闂紝涓氫綑鏃墮棿鍋氱殑欏圭洰鍙笉鍙互鍐欙紵鎴戣寰楀彧瑕佷綘鐨勯」鐩湁浠h〃鎬ц兘璇存槑瀵逛綘鐨勮兘鍔涳紝閮借鍖呮嫭銆?/p>
4錛庡垎娓呬富嬈★紝鍒犳帀鐩告瘮涔嬩笅涓嶈搗鐪肩殑鎴愮嘩錛屼互鍏嶅啿娣℃洿鍔犵獊鍑虹殑鎴愮嘩銆?/p>
鏈夋湅鍙嬮棶錛屽啓綆鍘嗘槸涓嶆槸鍐欑殑瓚婂瓚婂ソ錛熻濡傦細
鍦ㄧ敳鍏徃鍋氭殤鍋囧疄涔犵敓鈥斺?br />* 鏀瑰杽鐢靛瓙娓告垙鐨勬暟鍊煎垎綾葷畻娉曪紝 鍑忓皯浜嗗唴瀛樿姹?10%銆?br />* 鐢?Java 鍐欎簡 3000 琛岀敤鎴風晫闈㈢▼搴忋?br />* 姣忓懆鍋氫袱灝忔椂鐨勪漢宸ユ祴璇曘?/p>
浣犲湪鐢寵杞歡宸ョ▼甯堢殑鑱屼綅鏃訛紝鎴戣寰楀墠涓ょ偣姣旇緝鐩稿叧錛岀涓夌偣鍏跺疄灝變笉蹇呭啓浜嗐傛湁鏃舵垜鐪嬪埌鏈夌殑綆鍘嗛噷浼氭彁鍒幫紝"鎸夋椂瀹屾垚浜嗕換鍔★紝浜у搧絎﹀悎鍘熻鍒掕鏍?銆備絾璇葷畝鍘嗙殑浜洪氬父浼氳涓鴻繖鏄悊鎵褰撶劧鐨勶紝鑰屼綘鎶婅繖浜涘0鏄庡嚭鏉ュ弽鑰屽噺寮辯畝鍘嗙殑鏁堟灉銆?/p>
鍐欎竴浠界畝鍘嗕笉瀹規槗錛屼絾鍐欏ソ浜嗕篃浼氬甫鏉ユ垚灝辨劅 錛堝拰濂藉伐浣滐紒錛夈?Google 錛堣胺姝岋級鍦ㄤ腑鍥藉箍鍙悇鏂歸潰鐨勪漢鎵嶏紝浣犱笉濡ㄥ彲浠ョ粰鎴戜滑鎶曚釜綆鍘嗭紒鎴戜滑涓嶄絾鍦ㄤ俊鎭绱㈡柟闈㈡嫑闆囧伐紼嬪笀錛岃繕鏈夎綆楁満鍥懼艦銆佺敤鎴風晫闈€佺‖浠躲乄indows銆佽川閲忎繚璇佸憳鍜岀郴緇熺鐞嗗憳絳夋柟闈€傛洿澶氫俊鎭紝璇鋒偍璁塊棶榪欓噷銆?/p>
璋㈣阿闃呰錛佸ぇ瀹舵劅鍏磋叮鐨勮瘽錛屼笅嬈℃垜鍙互浠嬬粛鈥滃浣曢澶囪蔣浠跺伐紼嬪笀鐨勯潰璇曗濄?/p>
聽聽聽 '璁劇疆鎸囧畾琛岀殑楂樺害(鍗曚綅錛氱)
聽聽聽 xlApp.ActiveSheet.Rows(1).RowHeight = 1 / 0.035
聽聽聽
聽聽聽 '璁劇疆瀛椾綋
聽聽聽 'xlApp.ActiveSheet.Cells(1, 1).Font.Name = "榛戜綋"
聽聽聽 '璁劇疆瀛椾綋澶у皬
聽聽聽 xlApp.ActiveSheet.Cells(1, 1).Font.Size = 25
聽聽聽
聽聽聽 '璁劇疆鏁村垪瀛椾綋涓虹矖浣?br />聽聽聽 xlApp.ActiveSheet.Columns(1).Font.Bold = True
聽聽聽
聽聽聽 'xlBook.SaveAs ("C:\Case1.xls")
聽聽聽
聽聽聽 'xlSheet.PrintPreview (True)
聽聽聽
聽聽聽 xlApp.Visible = True '鏄劇ず鏂囦歡
聽聽聽
聽聽聽 'xlSheet.PrintOut '鎵撳嵃宸ヤ綔琛?br />
聽聽聽 If Not (xlApp Is Nothing) Then
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 xlBook.Close (True) '鍏抽棴宸ヤ綔綈?br />聽聽聽聽聽聽聽
聽聽聽聽聽聽聽 xlApp.Quit '蹇呴』緇撴潫EXCEL瀵硅薄
聽聽聽聽聽聽聽 Set xlApp = Nothing '閲婃斁xlApp瀵硅薄
聽聽聽 End If
聽聽聽聽聽聽聽聽 return value;
聽聽聽聽 }
浜岋細瀵逛簬NVARCHAR2瀛楁
鐜拌薄錛氬湪欏甸潰涓婅緭鍏ユ娉㈡氮綰庫滐綖鈥濆瓨鍏B鍚庡啀鍙栧嚭鍒伴〉闈㈡椂鍙樻垚鍙嶆嘗嫻嚎鈥溿溾?strong>錛堥〉闈㈢殑瀛楃璁劇疆涓篶harset=UTF-8錛?br />鐢∣bject Browser宸ュ叿瀵熺湅琛ㄤ腑鐨勬暟鎹?鍙戠幇鏄娉㈡氮綰庫滐綖鈥?緙栫爜涓篭u301c銆傦紙瀹為檯涓婄敤Object Browser鐪媆u301c聽 \uff5e閮芥槸姝f嘗嫻嚎錛?br />濡傛灉鐢∟VARCHAR2瀛楁錛岄偅涔堟紜殑鎿嶄綔鍚庡彲浠ュ瓨鍏uff5e
璇曢獙鐢ㄨ〃聽Products 錛岃〃涓殑鍒楀畾涔夊涓嬫墍紺?br />id - VARCHAR2(10) 鈥?浜у搧 id
lang_id 鈥?VARCHAR2(10) 鈥?璇█ id
description 鈥?NVARCHAR2(2000) 鈥?Unicode 緙栫爜鐨勪駭鍝佹弿榪?br />
JDBC 鍏佽 Java 紼嬪簭璁塊棶 Oracle9i 鏁版嵁搴撲腑鐨?NVARCHAR2 鏁版嵁綾誨瀷鐨勫垪銆侽racle JDBC 椹卞姩紼嬪簭鎶?SQL NCHAR/NVARCHAR2 鍒椾腑鐨勬暟鎹粠鏈湴瀛楃闆嗙紪鐮侊紙UTF8 鎴?AL16UTF16錛夌洿鎺ヨ漿鍖栦負 UTF-16 緙栫爜鐨?Java 瀛楃涓層?br />涓烘錛屾垜浠渶瑕佹妸 Java 瀛楃涓茬粦瀹氬埌涓涓?NVARCHAR2 鍒椼備笅闈㈢殑浠g爜孌墊樉紺轟簡瀹屾垚榪欓」浠誨姟鐨勪唬鐮併?/p>
// Get an Oracle preparedstatement
OraclePreparedStatement orastmt =(OraclePreparedStatement)connection.prepareStatement(
"INSERT INTO PRODUCTS VALUES(?,?,?)");
// Bind the 3rd parameter to NVARCHAR2 form so that the data is stored as unicode
orastmt.setFormOfUse(3,OraclePreparedStatement.FORM_NCHAR);
orastmt.setString(1,product.getId());
orastmt.setString(2,product.getLangId());
orastmt.setString(3,product.getDescription());
orastmt.executeUpdate();
orastmt.close();
浣跨敤 orastmt.setFormOfUse() 鏂規硶鏉ユ寚瀹氬垪鐨勭被鍨嬫槸 NVARCHAR2銆傜‘淇濇暟鎹互Unicode 緙栫爜瀛樺偍銆?br />
鍏充簬NVARCHAR2瀛楁鐨勬搷浣滃弬鑰冿細
http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/9i_jdbc/NCHARsupport4UnicodeSample/Readme.html
娉ㄦ剰榪欐璇濓細
The only difference in usage between the SQL CHAR and SQL NCHAR datatypes occur in a data bind situation.
The JDBC program must call the setFormOfUse() method to specify if the data is bound for a SQL NCHAR
datatype and it must be called before binding Java variables to SQL NCHAR datatypes.
蹇呴』鍏坰etFormOfUse鍐嶇粦瀹氬彉閲忋傚惁鍒欏瓨鍏ユ暟鎹簱涓殑浠嶆槸\u301c
select * from t1 where exists ( select null from t2 where y = x )
鎵ц鐨勮繃紼嬬浉褰撲簬:
for x in ( select * from t1 )
聽聽 loop
聽聽聽聽聽 if ( exists ( select null from t2 where y = x.x )
聽聽聽聽聽 then
聽聽聽聽聽聽聽聽 OUTPUT THE RECORD
聽聽聽聽聽 end if
end loop
琛燭1 涓嶅彲閬垮厤鐨勮琚畬鍏ㄦ壂鎻忎竴閬?/p>
鍒嗗埆閫傜敤鍦ㄤ粈涔堟儏鍐?
浠ュ瓙鏌ヨ聽( select y from T2 )涓鴻冭檻鏂瑰悜
濡傛灉瀛愭煡璇㈢殑緇撴灉闆嗗緢澶ч渶瑕佹秷鑰楀緢澶氭椂闂達紝浣嗘槸T1姣旇緝灝忔墽琛? select null from t2 where y = x.x )闈炲父蹇紝閭d箞exists灝辨瘮杈冮傚悎鐢ㄥ湪榪欓噷
鐩稿搴斿緱瀛愭煡璇㈢殑緇撴灉闆嗘瘮杈冨皬鐨勬椂鍊欏氨搴旇浣跨敤in.
2 鍚箟涓婄殑姣旇緝
鍦ㄦ爣鍑嗙殑scott/tiger鐢ㄦ埛涓?br />
聽聽聽 | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO |
1 | 7499 | ALLEN | SALESMAN | 7698 | 1981/02/20 | 1600.00 | 300.00 | 30 |
2 | 7521 | WARD | SALESMAN | 7698 | 1981/02/22 | 1250.00 | 500.00 | 30 |
3 | 7566 | JONES | MANAGER | 7839 | 1981/04/02 | 2975.00 | 20 | |
4 | 7654 | MARTIN | SALESMAN | 7698 | 1981/09/28 | 1250.00 | 1400.00 | 30 |
5 | 7698 | BLAKE | MANAGER | 7839 | 1981/05/01 | 2850.00 | 30 | |
6 | 7782 | CLARK | MANAGER | 7839 | 1981/06/09 | 2450.00 | 10 | |
7 | 7788 | SCOTT | ANALYST | 7566 | 1987/04/19 | 3000.00 | 20 | |
8 | 7839 | KING | PRESIDENT | 銆 | 1981/11/17 | 5000.00 | 10 | |
9 | 7844 | TURNER | SALESMAN | 7698 | 1981/09/08 | 1500.00 | 0.00 | 30 |
10 | 7876 | ADAMS | CLERK | 7788 | 1987/05/23 | 1100.00 | 20 | |
11 | 7900 | JAMES | CLERK | 7698 | 1981/12/03 | 950.00 | 30 | |
12 | 7902 | FORD | ANALYST | 7566 | 1981/12/03 | 3000.00 | 20 | |
13 | 7934 | MILLER | CLERK | 7782 | 1982/01/23 | 1300.00 | 銆 | 10 |