Tim Bunce wrote: > > > SELECT version > > FROM product_component_version > > WHERE product LIKE 'Oracle%' > > should be a quite portable way. > > I'd be a little nervous of that returning more than one row. > But lets wait and see if anyone complains :)
How about a test:
#!perl -w sub ok ($$;$) { my($n, $ok, $warn) = @_; ++$t; die "sequence error, expected $n but actually $t" if $n and $n != $t; ($ok) ? print "ok $t\n" : print "# failed test $t at line ".(caller)[2]."\nnot ok $t\n"; if (!$ok && $warn) { $warn = $DBI::errstr || "(DBI::errstr undefined)" if $warn eq '1'; warn "$warn\n"; } } use DBI; $| = 1; my $dbuser = $ENV{ORACLE_USERID} || 'scott/tiger'; my $dbh = DBI->connect('dbi:Oracle:', $dbuser, ''); unless($dbh) { warn "Unable to connect to Oracle ($DBI::errstr)\nTests skiped.\n"; print "1..0\n"; exit 0; } print "1..$tests\n"; # my $cnt = $dbh->selectrow_array(<<'SQL', undef, 'Oracle%'); SELECT count(*) FROM product_component_version WHERE product LIKE ? SQL ok(0, $cnt == 1); my $server_version = $dbh->func('ora_server_version'); ok(0, $server_version); ok(0, $server_version->[0] >= 7 && $server_version->[0] <= 9); # exit 0; BEGIN { $tests = 3 } __END__