Thanks for the followup post.
Code:
"BEGIN BATCH_SQL." .$FILE_MASK_FUNCTION . "(:OUTPUTFILE); end;"
Just for safety's sake, you should quote symbol names. Unfortunately, DBI (to my knowledge) doesn't provide a function to do this, it can only quote string values.
The rules for quoting a symbol name in Oracle are similar to quoting a value. This code should work:
Code:
sub quote_symbol {
my $a = shift; # Copy by value
$a =~ s/"/""/g; # Double up any double-quotes
return "\"$a\""; # And surround with double-quotes
}
There is a hitch, in that quoted symbols are case sensitive but unquoted symbols are not. This means that
foo is the same as
FOO and both are the same as
"FOO", but they're all different from
"foo". Got that?