有没有办法将文件从本地/客户端文件系统加载到 sqlplus/plsql 脚本中的 blob 列?
我有类似 SQL Developer 功能但已编写脚本的功能。当您在查看表数据时单击 blob 列时,将打开对话框。
SQL 语句在服务器上执行,而不是在客户端计算机上执行,并且服务器无法访问本地文件系统来读取那里的文件。
如果您特别想从客户端完成所有操作,请使用 shell 脚本(或等效脚本)并且:
从要加载的文件中读取 2000 个字节。
将2000字节的二进制数据转换为4000个十六进制字符。
重复直到读取文件。
执行此操作时,动态创建一条插入语句:
INSERT INTO table_name (
blob_column
) VALUES (
EMPTY_BLOB()
|| HEXTORAW('<first 4000 hexadecimal characters>')
|| HEXTORAW('<next 4000 hexadecimal characters>')
-- ...
|| HEXTORAW('<last 4000 hexadecimal characters>')
);
执行
sqlplus
中的SQL语句。
否则,将文件传输到数据库服务器并从那里加载文件。