使用java做存取。
把文件作为流存入数据库。
把文件作为流存入数据库。
解决方案 »
- spool自动转码问题
- 用过Oracle ERP之Payroll模块的请来领分
- oracle9i fow windows 下被误删除的package能恢复吗?
- 删除一个表后出现BIN$开头表怎么彻底删除掉?DTS导数据怎么会出现同名表?(大小写不一样),日志怎么删除缩小?
- 提升ORACLE的人气,散分喽!
- oracle导入问题!!!
- 求助:在不同用户间imp的问题
- 请问:元数据(Meta Data)是个什么概念?
- oracle没有临时表的吗
- 已经用exp命令导出数据,我想导入另外一台服务器,那台机器上已经安装了oracle,并且已经有数据库服务了,接下来我该怎么办?
- 这个服务为什么启动不了?
- 我想死,看看这个问题,来者有分大放血,五百分
如果要在oracle中!
写一个过程呢!
该过程只要把指定的文件(.txt)放入lob字段呢!
3ku!
不好意思!
如果不妨碍你的话,可以给出一个实例嘛?
实现不是很关键,能够学知识才是第一!嗬嗬!
REM Version 1.0, last updated 8/8/97
REM This procedure demonstrates many DBMS_LOB routines, including the BFILE
REM manipulation routines, as described in Chapter 21 of
REM _Oracle8 PL/SQL Programming_ by Scott Urman.CREATE OR REPLACE PROCEDURE FileExec(
-- Executes the SQL statements in the file identified by
-- p_Directory and p_FileName. Each statement should not contain
-- the trailing semicolon (unless it is a PL/SQL block) and should
-- be separated by p_SeparationChar.
p_Directory IN VARCHAR2,
p_FileName IN VARCHAR2,
p_SeparationChar IN CHAR) AS v_FileLocator BFILE;
v_CLOBLocator CLOB;
v_SQLCursor INTEGER;
v_StartPoint INTEGER := 1;
v_EndPoint INTEGER;
v_SQLStatement VARCHAR2(32000);
v_StatementLength INTEGER;
v_RC INTEGER;
BEGIN
-- Initialize the character locator for writing. Note that we have
-- to select a CLOB from a table FOR UPDATE. This locks the row,
-- and is a requirement for LOADFROMFILE.
SELECT clob_col
INTO v_CLOBLocator
FROM lobdemo
WHERE key = -1
FOR UPDATE; -- Initialize the BFILE locator for reading.
v_FileLocator := BFILENAME(p_Directory, p_FileName);
DBMS_LOB.FILEOPEN(v_FileLocator, DBMS_LOB.FILE_READONLY); -- Set up the cursor.
v_SQLCursor := DBMS_SQL.OPEN_CURSOR; -- Load the entire file into the character LOB.
-- This is necessary so that we have the data in
-- character rather than RAW variables.
DBMS_LOB.LOADFROMFILE(v_CLOBLocator, v_FileLocator,
DBMS_LOB.GETLENGTH(v_FileLocator)); -- Loop over the LOB, searching for each occurrence of
-- the separation character.
LOOP
v_EndPoint := DBMS_LOB.INSTR(v_CLOBLocator, p_SeparationChar,
v_StartPoint, 1);
EXIT WHEN v_EndPoint = 0; -- Extract the contents between the starting and ending points.
-- This is the SQL statement to be executed.
v_StatementLength := v_EndPoint - v_StartPoint;
v_SQLStatement := DBMS_LOB.SUBSTR(v_CLOBLocator,
v_StatementLength, v_StartPoint); -- Echo the statement to the screen, and then execute it
-- using DBMS_SQL.
DBMS_OUTPUT.PUT_LINE(v_SQLStatement);
DBMS_SQL.PARSE(v_SQLCursor, v_SQLStatement, DBMS_SQL.V7);
v_RC := DBMS_SQL.EXECUTE(v_SQLCursor); -- Increment the statement pointer for the next statement.
v_StartPoint := v_EndPoint + 1;
END LOOP; -- Clean up.
DBMS_LOB.FILECLOSE(v_FileLocator);
DBMS_SQL.CLOSE_CURSOR(v_SQLCursor);
EXCEPTION
WHEN OTHERS THEN
-- Close the cursor and file, and reraise.
DBMS_LOB.FILECLOSE(v_FileLocator);
DBMS_SQL.CLOSE_CURSOR(v_SQLCursor);
RAISE;
END FileExec;
/
CREATE TABLE MAP
(MAP_NO NEMBUR(2) PRIMARYKEY,
MAP_DATE DATE,
MAP_BLOB BLOB DEFAULT EMPTY_BLOB)想把E:\test.jpg存放到MAP_BLOB,请问应用什么命令,参数是什么create or replace directory utllobdir as 'e:\';
create table bfile_tab (bfile_column BFILE);
create table utl_lob_test (blob_column BLOB);declare
a_blob BLOB;
a_bfile BFILE := BFILENAME('UTLLOBDIR','test.jpg');
begin
insert into bfile_tab values (a_bfile)
returning bfile_column into a_bfile;
insert into utl_lob_test values (empty_blob())
returning blob_column into a_blob;
dbms_lob.fileopen(a_bfile);
dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
dbms_lob.fileclose(a_bfile);
commit;
end;
/
select dbms_lob.getlength(blob_column) from UTL_LOB_TEST;