1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| function out = bin2oracle(mode,name,var)
% Save variables into oracle as binaries (BLOB)
%
% Use :
% - out = bin2oracle(mode,name,var)
%
% Example :
% >> bin2oracle('save','myvar',1:10)
% >> bin2oracle('load','myvar')
% >> bin2oracle('delete','myvar')
% >> bin2oracle('delete','*') % be careful : delete all !
% author 'Thomas Grin'
% title 'bin2oracle'
% project ''
% date 'July-2006'
tmpfile1 = 'c:\tmpbin2oracleload.mat';
tmpfile2 = 'c:\tmpbin2oraclesave.mat';
if(nargin < 3)
var = 'bin2oracle: save error';
end
switch mode
case 'load'
query = sprintf('select data from BinData where name like ''%s''',name);
bin = execSQL('****','*****','*****',query);
fid = fopen(tmpfile1,'w');
fwrite(fid,cell2mat(bin),'int8');
fclose(fid);
tmp = load(tmpfile1);
out = tmp.var;
case 'save'
save(tmpfile2,'var')
fid = fopen(tmpfile2,'r');
data = fread(fid,'int8');
fclose(fid);
for i=1:length(data)
dat = now;
query = sprintf('insert into BinData(dat,name,data) values(%d,''%s'',%d)',dat,name,data(i));
execSQL('*****','*****','****',query);
end
case 'delete'
query = 'delete from BinData';
if ~strcmp(name,'*')
query = [query, sprintf('where name like ''%s''',name)];
end
execSQL('*****','*****','****',query);
end |
Partager