列 | 类型 |
-----+-----------------------------
A1 | integer
A2 | BLOB假设把D盘SQL目录下的data.txt插入到A2列,用SQL语句怎么写?A1随便等于多少。
谢谢了。明早给分。
-----+-----------------------------
A1 | integer
A2 | BLOB假设把D盘SQL目录下的data.txt插入到A2列,用SQL语句怎么写?A1随便等于多少。
谢谢了。明早给分。
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id
AND p.pub_name = 'New Moon Books'
UPDATETEXT pub_info.pr_info @ptrval 88 1 'b';
GO
(a1 int,
a2 blob,
CONSTRAINT pk_tlob PRIMARY KEY(a1));二.插入一条数据INSERT INTO tlob VALUES(1, empty_blob());
COMMIT;三.创建一个目录对象,在system用户下,并授权给scott
conn system/passwdCREATE OR REPLACE DIRECTORY blobdir AS 'D:\';
GRANT READ,WRITE ON DIRECTORY blobdir TO scott;四.连接到scott,执行插入
DECLARE
l_fname VARCHAR2(20) := 'data.txt';
l_file BFILE := BFILENAME('BLOBDIR',l_fname);
l_blob BLOB;
BEGIN
IF DBMS_LOB.FILEEXISTS(l_file) = 1 THEN
SELECT a2
INTO l_blob
FROM tlob
WHERE a1 = 1
FOR UPDATE;
DBMS_LOB.OPEN(l_file,DBMS_LOB.LOB_READONLY);
DBMS_LOB.LOADFROMFILE(l_blob,
l_file,
DBMS_LOB.GETLENGTH(l_file));
DBMS_LOB.TRIM(l_blob,DBMS_LOB.GETLENGTH(l_file));
DBMS_LOB.CLOSE(l_file); ELSE
DBMS_OUTPUT.PUT_LINE('NONEXIST');
END IF;
EXCEPTION WHEN OTHERS THEN
IF DBMS_LOB.ISOPEN(l_file) = 1 THEN
DBMS_LOB.CLOSE(l_file);
END IF;
END;
/五,测试插入结果,利用length函数SELECT length(a2) FROM tlob WHERE a1 = 1;
是这样的,表还是上面的,用VS2005通过ODBC访问数据库,插入1K的2进制大对象,具体怎么实现?我这有实例能插入普通数据,但大对象不知道怎么弄。
谢谢。
和普通的操作当然是不一样的,比较2进制对象不能简单的用字符串表示出来,所以一般的sql是解决不了的,不过对于大多数的编程语言来说都提供了数据库连接的接口(API),对vs不是很熟悉,不过以前搞过java的编程,在java可以提供jdbc来操作数据库,里面对lob的操作,先插入一个记录,不过blob字段先用empty_blob代替,这样blob字段现在还没有自己指定的blob的值,然后update这条记录,在update的时候可以用二进制流对该字段操作,你可以看看vs里的数据库连接的api里有没有提供类似的方式。
郁闷
你可以CSDN的资源库里去找。我刚刚上传了,可能要等等就有了。
http://zhangchu_63.download.csdn.net/