ORACLEÖÐBFILE×ֶεÄʹÓÃ
¡¾ ·þÎñÆ÷ѧԺ¡¿ÒòΪ×öÏîÄ¿£¬ÐèҪʹÓÃBFILE×ֶδ洢ͼÏñÎļþ£¬ËùÒÔ½øÐÐÁËһЩÑо¿¡£
¡¡¡¡
¡¡¡¡bfile×Ö¶Îʵ¼ÊµÄÎļþ´æ´¢ÔÚÎļþϵͳÖÐ,×Ö¶ÎÖд洢µÄÊÇÎļþ¶¨Î»Ö¸Õë.bfile¶ÔoracleÀ´ËµÊÇÖ»¶ÁµÄ,Ò²²»²ÎÓëÊÂÎñÐÔ¿ØÖƺÍÊý¾Ý»Ö¸´
¡¡¡¡
¡¡¡¡bfileµÄ»ù±¾²Ù×÷ÈçÏ£º
¡¡¡¡
¡¡¡¡1.ÏÈÔÚoracleÊý¾Ý¿âÖÐÏÂÃæÎÒÃǽ¨Á¢Ò»¸öĿ¼±ðÃû,ÓÃÓÚ½«Îļþ¶¨Î»Ö¸ÕëÓ³Éäµ½Îļþϵͳ£º
¡¡¡¡
¡¡¡¡create DIRECTORY 'tmpdir' AS '/tmp';
¡¡¡¡
¡¡¡¡tmpdir±íʾÂ߼Ŀ¼Ãû£¬'/tmp'ÊÇʵ¼ÊĿ¼¡£ ×¢Òâ¸ÃĿ¼oracleÓ¦¸ÃÓжÁȨÏÞ
¡¡¡¡
¡¡¡¡È»ºó¸ù¾ÝÐèÒªÊÚȨ
¡¡¡¡
¡¡¡¡GRANT READ ON DIRECTORY bfile_dir1 TO scott;
¡¡¡¡
¡¡¡¡½¨Á¢Ò»¸öº¬ÓÐbfile×ֶεıí
¡¡¡¡
¡¡¡¡create table bfiletest(id number(3), fname bfile);
¡¡¡¡
¡¡¡¡½¨Á¢Ò»¸öº¬ÓÐBLOB×ֶεıí
¡¡¡¡
¡¡¡¡create table blobtest(id number(3),ablob blob);
¡¡¡¡
¡¡¡¡2.²åÈëÊý¾Ý
¡¡¡¡
¡¡¡¡ÕâÀïÐèҪʹÓÃbfilenameÀ´½øÐÐbfile×ֶεÄinsert »òÕß update²Ù×÷
¡¡¡¡
¡¡¡¡INSERT INTO bfiletest
¡¡¡¡
¡¡¡¡VALUES (1, BFILENAME ('tmpdir', 'tmptest'));
¡¡¡¡
¡¡¡¡bfilenameµÄ²ÎÊý1ÊÇDIRECTORYÃû£¬²ÎÊý2ÊÇÎļþÃû¡£×¢Ò⣺ÕâÒ»ÐÐÖвåÈëµÄÊÇ
¡¡¡¡
¡¡¡¡Ò»¸öÖ¸Ïò/tmp/tmptestµÄÎļþ¶¨Î»Ö¸ÕëÓ³Éä,²»ÊÇÎļþ±¾Éí¡£
¡¡¡¡
¡¡¡¡3.¶ÁÈ¡bfile
¡¡¡¡
¡¡¡¡Í¨¹ýʹÓÃdbms_lob°ü½øÐпÉÒÔ¶Ôbfile¶ÁÈëµ½blob/clob¶ÔÏóÖвÙ×÷(Ö»¶Á)
¡¡¡¡
¡¡¡¡CREATE OR REPLACE PROCEDURE loadLOBfromBFILE_proc(
¡¡¡¡TID IN NUMBER,rfilename in varchar2,rfiledir in varchar2,upmessage out varchar2)
¡¡¡¡AS
¡¡¡¡Dest_loc BLOB;
¡¡¡¡Src_loc BFILE;
¡¡¡¡BEGIN
¡¡¡¡INSERT INTO BLOBTEST(ID,ABLOB) VALUES(TID,EMPTY_BLOB()) RETURN ABLOB INTO DEST_LOC;
¡¡¡¡
¡¡¡¡Src_loc := BFILENAME(rfiledir,rfilename);
¡¡¡¡
¡¡¡¡/* Èç¹ûbfileÎļþʵ¼Ê´æÔÚ */
¡¡¡¡IF (DBMS_LOB.FILEEXISTS(Src_loc) != 0)
¡¡¡¡THEN
¡¡¡¡/* ´ò¿ªbfileÔ´Îļþ */
¡¡¡¡DBMS_LOB.OPEN(Src_loc, DBMS_LOB.LOB_READONLY);
¡¡¡¡/* ´ò¿ªÄ¿±êblob: */
¡¡¡¡DBMS_LOB.OPEN(Dest_loc, DBMS_LOB.LOB_READWRITE);
¡¡¡¡/*´ÓÎļþÖÐ×°Èë */
¡¡¡¡DBMS_LOB.LOADfromFILE(Dest_loc, Src_loc,DBMS_LOB.GETLENGTH(Src_loc));
¡¡¡¡/* ¼ÇµÃ¹Ø±Õ: */
¡¡¡¡DBMS_LOB.CLOSE(Dest_loc);
¡¡¡¡DBMS_LOB.CLOSE(Src_loc);
¡¡¡¡COMMIT;
¡¡¡¡upmessage :
Ïà¹ØÎĵµ£º
¾¹ý³¤Ê±¼äѧϰOracle£¬Äã¿ÉÄÜ»áÓöµ½Oracle tnsÅäÖÃÎÊÌ⣬ÕâÀォ½éÉÜOracle tnsÅäÖÃÎÊÌâµÄ½â¾ö·½·¨¡£×î½üæ×Ű²×°OracleÊý¾Ý¿â£¬±¾À´Í¦¼òµ¥µÄ£¬¿ÉÀÏÊdzöÏÖÎÊÌ⣬×îºó×Ô¼ºÔÚÍøÉÏÕûÀíÁËһЩtns´íÎó½â¾ö·½·¨£¬Ï£Íû¶Ô³õѧÕßÓÐÒæ¡£
³£¼ûÎÊÌâ:
1¡¢ORA-12541:tns:ûÓмàÌýÆ÷£º
ÏÔ¶øÒ×¼û£¬·þÎñÆ÷¶ËµÄ¼àÌýÆ÷ûÓÐÆô¶¯£¬ÁíÍâ¼ì²é¿Í» ......
CREATE OR REPLACE PROCEDURE kevin_proc(x varchar) IS
a VARCHAR(20);
b VARCHAR(20);
CURSOR mycur(rn NUMBER) IS SELECT * from t_kevin_test WHERE ROWNUM<rn;
BEGIN
OPEN mycur(10);
LOOP FETCH mycur INTO a,b;
EXIT WHEN mycur%NOTFOUND;
Dbms_Output.put_line('a: '||a);
Dbms_Output.put_line('b: '| ......
´óÖ·ÖΪÈý²¿·Ý£¬1.SQL£¬2.ERP±¾Éí£¬3.±¾»ú
1.Èç¹ûÊÇSQLµ¼³öʱ³öÏÖ£¬ÂÒÂë¿ÉÒÔͨ¹ýÐÞ¸ÄNLS_LANG£¬À´±ÜÃâÂÒÂ룬
·±ÌåÐ޸ijɣºTRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
¼òÌåÐ޸ijÉ: SIMPLIFIED CHINESE_CHINA.ZHS16GBK
Ó¢ÎľͲ»ÓÃ˵ÁË£¡£¡
2.Èç¹ûÊÇERP export ʱ³öÏÖÂÒÂ룬¿ÉÒÔͨ¹ýÉèÖÃprofileÀ´ÉèÖÃFND: NATIVE CLIENT ENC ......
ÓÉÓÚ֮ǰѧϰoracleµÄʱºò±È½ÏËæÒ⣬¿´ÊéÒ²ÊDZȽÏÉÙÈ¥ÉîÈë˼¿¼ÔÀí£¬¶ø´Óǰ¼¸Ìì¾ö¶¨ÒªÖØÐÂȼÆðoracleµÄѧϰ¼¤Çéºó£¬ÎÒÓÖÖØÐµĴӻù´¡Ñ§Æð£¬´ËʱÎÒѧoracleµÄÐÄ̬Ҳ±ÈÒÔǰºÃºÜ¶àÁË£¬ÏÖÔÚÊÇŬÁ¦µÄÒ»µãÒ»µãÈ¥¿ÐÁË£¬¼´Ê¹ºÜ»¨Ê±¼ä£¬µ«ÎÒÏëÕýÊÇͨ¹ý½ñÌìÎÒÕâÑùµÄÂñÍ·¿à¶Á²Å»á»»À´Óг¯Ò»ÈÕÔÚoracle·½ÃæµÄÖʵķÉÔ¾µÄ¡£
  ......