在一个表中存放了俩个blob字段,想一个存文本,一个存声音文件,为什么建立时出错呢?
我的程序,大家帮看看!!!
create table peixun1_tab (id varchar2(10) not null,wenben BFILE ,sound BFILE);
create table peixun1 ( id varchar2(10) not null,wenben BLOB, sound BLOB);
create or replace directory utllobdir as 'f:';
set serveroutput on
以上建表没问题
declare
wenben_blob BLOB;
wenben_bfile BFILE := BFILENAME('UTLLOBDIR','1-1-1.txt');
sound_blob BLOB;
sound_bfile BFILE :=BFILENAME('UTLLOBDIR','1-1-1.mp3');
begin
insert into peixun1_tab values ('1-1-1',wenben_bfile,sound_bfile)
returning wenben into wenben_bfile;
returning sound into sound_bfile;
insert into peixun1 values ('1-1-1',empty_blob(),empty_blob())
returning wenben into wenben_blob;
returning sound into sound_blob;
dbms_lob.fileopen(wenben_bfile);
dbms_lob.loadfromfile(wenben_blob, wenben_bfile, dbms_lob.getlength(wenben_bfile));
dbms_lob.fileclose(wenben_bfile);
dbms_lob.fileopen(sound_bfile);
dbms_lob.loadfromfile(sound_blob, sound_bfile, dbms_lob.getlength(sound_bfile));
dbms_lob.fileclose(sound_bfile);
commit;
end;
出错信息:
returning sound into sound_bfile;
*
ERROR 位于第 10 行:
ORA-06550: 第 10 行, 第 25 列:
PLS-00103: 出现符号 "SOUND"在需要下列之一时:
:=.(@%;
ORA-06550: 第 13 行, 第 24 列:
PLS-00103: 出现符号 "SOUND"在需要下列之一时:
:=.(@%;
我的程序,大家帮看看!!!
create table peixun1_tab (id varchar2(10) not null,wenben BFILE ,sound BFILE);
create table peixun1 ( id varchar2(10) not null,wenben BLOB, sound BLOB);
create or replace directory utllobdir as 'f:';
set serveroutput on
以上建表没问题
declare
wenben_blob BLOB;
wenben_bfile BFILE := BFILENAME('UTLLOBDIR','1-1-1.txt');
sound_blob BLOB;
sound_bfile BFILE :=BFILENAME('UTLLOBDIR','1-1-1.mp3');
begin
insert into peixun1_tab values ('1-1-1',wenben_bfile,sound_bfile)
returning wenben into wenben_bfile;
returning sound into sound_bfile;
insert into peixun1 values ('1-1-1',empty_blob(),empty_blob())
returning wenben into wenben_blob;
returning sound into sound_blob;
dbms_lob.fileopen(wenben_bfile);
dbms_lob.loadfromfile(wenben_blob, wenben_bfile, dbms_lob.getlength(wenben_bfile));
dbms_lob.fileclose(wenben_bfile);
dbms_lob.fileopen(sound_bfile);
dbms_lob.loadfromfile(sound_blob, sound_bfile, dbms_lob.getlength(sound_bfile));
dbms_lob.fileclose(sound_bfile);
commit;
end;
出错信息:
returning sound into sound_bfile;
*
ERROR 位于第 10 行:
ORA-06550: 第 10 行, 第 25 列:
PLS-00103: 出现符号 "SOUND"在需要下列之一时:
:=.(@%;
ORA-06550: 第 13 行, 第 24 列:
PLS-00103: 出现符号 "SOUND"在需要下列之一时:
:=.(@%;
解决方案 »
- 各位大哥,求一SQL语法,或者解决办法.
- 请教大家:如何在存储过程中创建,SELECT,INSERT,然后再DROP掉这个表呢?
- 怎样把数据从表空间system到另一表空间aa?
- 跪求!Oracle!8%、26%、28%时安装错误!!!
- 一道简单的SQL语句问题,求高手赐教
- 两表联接update问题!~
- oracle 11g r2 连接字符串问题
- 请教:如何将oracle库中的表结构(表数量很大)生成表定义脚本文件,急(在线等)
- SQL 基础两问,谢谢
- Windows下怎么访问ORACLE 最快,ADO? ODBC? ProC??
- pl/sql 语句 关于日期的输入格式
- 求一条SQL,要求分组计算两张表中数量总和
create or replace directory UTLLOBDIR as 'c:\';
create table peixun1_tab (id varchar2(10) not null,wenben BFILE ,sound BFILE);
create table peixun1 ( id varchar2(10) not null,wenben BLOB, sound BLOB); DECLARE
WENBEN_BLOB BLOB;
WENBEN_BFILE BFILE := BFILENAME('UTLLOBDIR', '1-1-1.txt');
SOUND_BLOB BLOB;
SOUND_BFILE BFILE := BFILENAME('UTLLOBDIR', '1-1-1.mp3');
BEGIN
INSERT INTO PEIXUN1_TAB
VALUES
('1-1-1', WENBEN_BFILE, SOUND_BFILE) ;
INSERT INTO PEIXUN1
VALUES
('1-1-1', EMPTY_BLOB(), EMPTY_BLOB())
RETURNING WENBEN, SOUND INTO WENBEN_BLOB, SOUND_BLOB;
DBMS_LOB.FILEOPEN(WENBEN_BFILE);
DBMS_LOB.LOADFROMFILE(WENBEN_BLOB,
WENBEN_BFILE,
DBMS_LOB.GETLENGTH(WENBEN_BFILE));
DBMS_LOB.FILECLOSE(WENBEN_BFILE);
DBMS_LOB.FILEOPEN(SOUND_BFILE);
DBMS_LOB.LOADFROMFILE(SOUND_BLOB,
SOUND_BFILE,
DBMS_LOB.GETLENGTH(SOUND_BFILE));
DBMS_LOB.FILECLOSE(SOUND_BFILE);
COMMIT;
END;
/