我有一个oracle表,其中有诸如Document(类型BLOB),扩展名(具有.pdf,.doc等值的VARCHAR2(10))和Document Description(VARCHAR2 (100))。我想导出这些数据并提供给我的客户。
这可以在水壶中完成吗?
谢谢
答案 0 :(得分:0)
我有一个MSSQL数据库,将图像存储在BLOB列中,并找到了一种使用动态SQL步骤将图像导出到磁盘的方法。
首先,仅选择构建文件名和SQL语句所需的列(id,用户名,记录日期等)。然后,我使用Select FirstName, LastName,
Stuff(
Concat(
',' + FirstName,
',' + LastName,
',' + StreetAddress,
',' + City,
',' + Country,
',' + PostalCode ),
1,1,'')
From Client
步骤创建两个输出文件名(减去文件扩展名):
Modified Javascript Value
和动态SQL语句:
outputPath = '/var/output/';
var filename = outputPath + username + '_' + record_date;
// --> '/var/output/joe_20181121'
然后,在使用select将字段数减少为文件名和blob_query之后,我使用了var blob_query = "SELECT blob_column FROM dbo.table WHERE id = '" + id + "'";
步骤(选择了“外部联接”)从数据库中检索blob。
最后一步是使用Dynamic SQL row
步骤输出到文件。它允许您从字段中提供文件名,并为其添加文件扩展名。在“内容”选项卡上,未选中所有框,“格式”为“无换行符”,“压缩”为“无”。导出的唯一字段是动态SQL步骤返回的“ blob_column”,类型应为“二进制”。
显然,这比其他表/ SQL操作要慢得多,这是由于动态SQL步骤为每一行建立了单独的数据库连接... 但它可以工作。
祝你好运!