Skip to content

Instantly share code, notes, and snippets.

@cmarat
Created November 20, 2015 20:33
Show Gist options
  • Save cmarat/ad7da95930236b66f408 to your computer and use it in GitHub Desktop.
Save cmarat/ad7da95930236b66f408 to your computer and use it in GitHub Desktop.
create procedure
cbw.DBA.csvExport( IN in_query VARCHAR, IN filename VARCHAR )
{
declare query varchar;
query := split_and_decode(in_query,0,'%');
file_delete(filename,1);
declare meta, _dt any;
declare errorCode, errorMessage varchar;
declare inx integer;
exec (query, errorCode, errorMessage, vector(), 0, meta, _dt);
declare linestr varchar;
declare flag integer;
linestr := '';
if (meta <> 0) {
flag := 0;
FOREACH (varchar col in meta[0]) DO {
if (flag = 0) flag := 1;
else linestr:=concat(linestr,',');
linestr := concat(linestr,'"',col[0],'"');
}
string_to_file(filename,linestr,-2);
string_to_file(filename,'\n',-1);
-- Header is now complete
inx := 0;
if (_dt <> 0) {
while (inx < length (_dt))
{
linestr := '';
flag := 0;
FOREACH (any col in _dt[inx]) DO {
if (flag = 0) flag := 1;
else linestr:=concat(linestr,',');
linestr := concat(linestr,'"',col,'"');
}
string_to_file(filename,linestr,-1);
string_to_file(filename,'\n',-1);
inx := inx + 1;
}
}
} else return 'No records or some error';
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment