- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想也许我开始在这里得到这个过程,但它太奇怪了,我怀疑自己。下面看评论,有什么乱七八糟的地方。
DECLARE
srcFile BFILE := BFILENAME('SOME_DIR', 'xyz.pdf');
fLen NUMBER;
dest BLOB;
BEGIN
INSERT INTO SomeTable
VALUES ( 1, 'xyz.pdf', EMPTY_BLOB(), null ) -- Does this establish an active ref.?
RETURNING pdf_file INTO dest;
DBMS_LOB.OPEN(srcFile, dbms_lob.file_readonly);
fLen := dbms_lob.getlength(srcFile);
DBMS_LOB.LOADFROMFILE(dest, srcFile, fLen); -- Does this reach into the table row,
-- and fill it with the file’s contents?
dbms_lob.close(srcFile);
commit;
END;
下面的方法是更新已经存在的行中的 BLOB 吗?
DECLARE
srcFile BFILE := BFILENAME('SOME_DIR', 'xyz.pdf');
fLen NUMBER;
dest BLOB;
BEGIN
SELECT pdf_file INTO dest -- Does this est. an active reference?
FROM SomeTable
WHERE ID = 1; -- ( <———<<< ' = 1' is just for example.)
DBMS_LOB.OPEN(srcFile, dbms_lob.file_readonly);
fLen := dbms_lob.getlength(srcFile);
DBMS_LOB.LoadFromFile(dest, srcFile, fLen); -- Does this reach into the row,
-- filling it w/ the file’s contents?
dbms_lob.close(srcFile);
commit;
END;
这看起来更像是 .NET 对数据库适配器以及 FileInfo、DirInfo 函数的处理。但我在 Oracle 的其他任何地方都没有看到这种理念。
我早就料到了
BLOBVariable = LoadFromFile(srcLocator, byteCnt); -- where the func. rtrns a val,
跟着
INSERT INTO SomeTable (pdf_file)
VALUES (BLOBVariable);
我没看错吗?如果是这样,什么时候放弃引用?我似乎记得读过使用“LoadFromFile?”时不需要“提交”的内容?
现在,今天早上我看到了一个示例(没有解释),它选择 BLOB 字段到一个变量中,使用 FOR UPDATE 来锁定记录。了解这是怎么回事可能会很好......
-- Lock the record
execute immediate 'SELECT pdf_file INTO dest
FROM image_blobs
WHERE itl_image_blob_id = :1
FOR UPDATE'
INTO v_blob_data
using < the row identifier goes here >;
-- Read the file
dbms_lob.loadfromfile(dests, srcFile, fLen);
-- update the blob field
execute immediate '
UPDATE image_blobs
SET pdf_file = :1
WHERE itl_image_blob_id = :2'
using dest, < row identifier >;
最佳答案
以下内容表明我的理智完好无损,INSERT 语句确实创建了 loadfromfile()
使用的引用。这个关于 INSERT 语句的答案足以满足我的目的,因此我将假设 UPDATE 功能是相似的。 'IMPORT_DIR'
是数据库中的命名数据库目录。
DROP TABLE TEST_BLOBS purge; -- 'purge' prevents loading up the recycle bin.
CREATE TABLE TEST_BLOBS (
ID VARCHAR(4),
F_NAME VARCHAR2(50 BYTE),
CONTENT_TYPE VARCHAR2(50 BYTE),
F_SIZE NUMBER(10),
BLOB_DATA BLOB DEFAULT empty_blob() );
DECLARE
dest blob; tmp_id varchar2(4);
v_f_sz NUMBER(10); b_file BFILE := NULL;
fName VARCHAR2 (50);
CURSOR get_items IS SELECT filename FROM My_Table_of_names;
BEGIN
FOR a_rec IN get_items LOOP
fName := a_rec.filename;
b_file := BFILENAME ( 'IMPORT_DIR', fName );
IF DBMS_LOB.fileexists (b_file) = 0 THEN
-- Report the problem and exit.
END IF;
DBMS_LOB.fileopen ( b_file, DBMS_LOB.file_readonly );
v_f_sz := DBMS_LOB.getlength (b_file);
INSERT INTO test_blobs ( ID, content_type, f_name, f_size, blob_data )
VALUES ( <Some_ID_val>, 'application/pdf', fName, v_f_sz, empty_blob() )
RETURNING blob_data, ID INTO dest, tmp_id;
-- Table field contains data, (HUGEBLOB),
-- when debugging and loop ends here.
DBMS_LOB.loadfromfile(dest, b_file, v_f_sz);
DBMS_LOB.close(b_file);
-- After running this, the variable tmp_id has the value that was assigned in the INSERT statement,
-- and the table’s fields, 'BLOB_Data', have the contents of the files. dest is indeed a reference
-- to the row and field, allowing LoadFromFile() to put data into the table.
END LOOP;
END;
/
关于oracle - DBMS_LOB.LoadFromFile 完整性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805798/
我使用Delphi LoadFromFile函数插入Table1BLOBFIELD.LoadFromFile('C:\xxx.avi') 和 SaveToFile 命令来检索。这种插入/检索相当耗时(
如何保持.txt文件中存在的空格?在.txt文件中,它表示: text :text text1 :text1 text23 :text2 text345 :text3 如果我写这段
我得到了一个 .png 文件,该文件在 Windows 资源管理器中正确呈现,但不会加载到我的应用程序中。每当我尝试加载文件时,它都会抛出 EPNGInvalidFileHeader异常(except
我正在尝试打开一个 StringList 的 txt 文件,但如果我打开 UTF-8 格式,它无法加载,这很令人困惑,因为我有 Unicode XE2,我在这里错过了一些愚蠢的东西吗? 简单示例 Sl
我正在运行 Delphi RAD Studio XE2。 我有一些非常大的文件,每个文件都包含大量行。这些行本身很小——只有 3 个制表符分隔的 double 。我想使用 TStringList.Lo
我想也许我开始在这里得到这个过程,但它太奇怪了,我怀疑自己。下面看评论,有什么乱七八糟的地方。 DECLARE srcFile BFILE := BFILENAME('SOME_DIR',
我正在尝试将图像加载到 Oracle 多媒体数据库中。我的 OrdImage.loadDataFromFile() 方法有问题,它会抛出 SQLException java.sql.SQLExcept
我一直在尝试在 C++ VS 2013 中使用 SFML 输出图像,但是当我使用 loadFromFile 时,它没有显示任何内容,我检查了工作目录,它是项目目录,图像在其中的一个文件。这是代码:
我有以下代码: #include #include int main(int argc, char* argv[]) { sf::RenderWindow window(sf::Video
我正在学习使用 SFML 来制作一个小游戏,到目前为止,我已经创建了一个窗口并乱搞了它的设置,并设置了一个绘制循环和事件处理程序。 一旦我尝试使用以下代码添加我的第一个纹理,问题就开始了: #incl
我正在使用 SFML 2.2 和 Visual Studio Express 2013。 我只是想加载纹理并将其应用到 Sprite ,就像在 http://www.sfml-dev.org/tuto
在 32 位、8GB 内存的 Win 10 系统上编译。 尝试使用 Tstringlist.Loadfromfile 加载 150Mb ASCII 文件会出现“内存不足错误”,任务管理器报告已使用 1
最近我一直在测试 SFML 2.3 中的一些功能,并且我开始熟悉 C++。尝试后,我决定尝试将文本添加到程序中,使用 sf::Text 和 sf::Font。 这样做之后,我在运行该程序时遇到了问题,
我在 xcode4 中使用 sfml 2.1。 ballSpriteSheet.png 位于项目文件夹中。它使用完整的文件路径加载。为什么文件不会按写入的方式加载?如果写的不可能,你能至少设置一个相对
我有这个资源类,它为我保存我的资源(只是字体)。我调用 initialise() 来加载资源,然后我做正常的程序流程,在我退出程序之前调用 cleanUp()。这一切都很完美。 这是类的代码。资源.h
我试图在 SFML 中加载纹理,但它不起作用。似乎程序甚至不知道 JPG 的存在。 sf::Texture table; if (!table.loadFromFile("pool-table
我正在对标准 VCL TImage 控件和各种其他第三方替代方案的性能进行一些比较。我使用 GetTickCount 来测量加载图像所需的时间。实际上,大约需要 4 秒,但是 LoadFromFile
在我打开这个帖子之前我做了一个搜索以防止重复问题,我发现了一些类似的问题,但它们有点老了。 我按照官方指南的建议配置了 SFML(代码块),我什至编译了测试代码并实际工作,但是当我尝试使用纹理或图像时
当我开始游戏时,fps 大约是 60,但按住“W”按钮时,我的 fps 下降到 30。松开那个按钮时,它再次变为 60。发生这种情况是因为代码行:模型->加载("img/characters.png"
我有一个 Delphi 2006 应用程序,我正在添加代码来处理一些生成的 CSV 数据文件。 TStringList.LoadFromFile 给出了奇怪的结果,我刚刚发现这些文件是 UTF-16
我是一名优秀的程序员,十分优秀!