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 := '0';
¡¡¡¡END IF;
¡¡¡¡E
Ïà¹ØÎĵµ£º
ѧϰOracle DBAÒ²°ë¸ö¶àѧÆÚÁË£¬½ñÌìÃÍÈ»²Å·¢ÏÖ£¬ÔÀ´ÎÒµÄÊ黹ÊǺÜеģ¬ÉϿβÙ×÷ʱºòÒ²Ö»ÊÇÖªµÀ´ó¸ÅÔõô×ö£¬µ«ÊÇÒªÕæµÄÈ«²¿×Ô¼º×ö£¬¶ø²»È¥·Ê黹ÊÇÓÐÒ»¶¨µÄÄѶȵģ¬ËùÒÔÄØ£¬½ñÌ쿪ʼ½«DBA´ÓÍ·¸´Ï°Ò»±é£¬Í¬Ê±ÔÙ²Ù×÷Ò»±é¡£
µÚÒ»Õ£¬Ñ§µÄÊÇOracleµÄÌåϵ½á¹¹£ ......
Ê×ÏȲ鿴Êý¾Ý¿âÏÖÓÐģʽ¿ÉʹÓÃÒÔÏÂÓï¾ä
select name,log_mode from v$database;
Ò²¿ÉÒÔÓÃÏÂÃæµÄÓï¾ä
archive log list£»(¸Ã·½·¨ÐèÒªas sysdba)
SQL> archive log list
Database log mode ¡¡¡¡¡¡¡¡¡¡¡¡No Archive Mode
Automatic archival¡¡¡¡¡¡¡¡¡¡¡¡Disabled
Archive destination¡¡¡¡¡¡¡¡¡¡ /export/home ......
ÔÚµ¼ÍêÊý¾ÝÖ®ºó·¢ÏÖ oracleµÄ°²×°ÅÌÖ»Óм¸MµÄ¿Õ¼äÁË¡£
ÏÖÔÚÓÐÁ½¸ö·½°¸¿ÉÒÔÑ¡Ôñ
1.°ÑÊý¾ÝÎļþ×ªÒÆµ½ÁíÍâÒ»¸öÅÌÈ¥¡£
ÎÒµ¼Êý¾ÝµÄʱºòÊÇÕâÑù×öµÄ 1.н¨Ò»¸ö±í¿Õ¼ä£¬Îª±í¿Õ¼äÌí¼ÓÒ»¸öÊý¾ÝÎļþ£¨assure_dt£©¡£2.н¨Óû§£¬±í¿Õ¼äÖ¸Ïò²½Öè1н¨µÄ±í¿Õ¼ä¡£
È»ºóµ¼Èë¡£ÎÒÓõÄÊÇoracle 10g
ÎÊÌâ1.ΪʲôÎÒÌí¼ÓµÄÊý¾ÝÎļþas ......
BEGIN
¡¡¡¡SELECT ...
¡¡¡¡SELECT ...
¡¡¡¡SELECT ...
¡¡¡¡...
¡¡¡¡EXCEPTION
¡¡¡¡WHEN NO_DATA_FOUND THEN -- catches all ’no data found’ errors
¡¡¡¡
¡¡¡¡2¡¢Òì³£µÄ·ÖÀà
¡¡¡¡
¡¡¡¡ÓÐÁ½ÖÖÀàÐ͵ÄÒì³££¬Ò»ÖÖΪÄÚ²¿Òì³££¬Ò»ÖÖΪÓû§×Ô¶¨ÒåÒì³££¬ÄÚ²¿Òì³£ÊÇÖ´ÐÐÆÚ¼ä·µ»Øµ½PL/SQL¿éµÄORACLE´íÎó»òÓÉPL/ ......