DBD::Oracle -- NULL LOB Locator is not "null"

DBD::Oracle -- NULL LOB Locator is not "null"

am 24.05.2007 20:08:01 von ngdvakigyotuia

(DBD::Oracle version 1.17)
Given the following:

my $sLobLocator;
my $hSQL = $hDB->prepare(q{
BEGIN
:lob := NULL;
END;
}, { ora_auto_lob => 0 });

$hSQL->bind_param_inout( ':lob', \$sLobLocator, 0, { ora_type => ORA_BLOB } );
$hSQL->execute;
print "\$sLobLocator = $sLobLocator\n";
print "\$\$sLobLocator = $$sLobLocator\n";

The output is:

$sLobLocator = OCILobLocatorPtr=SCALAR(0x1632d10)
$$sLobLocator = 25412916

I expected for $sLobLocator to be undefined or empty, or at least for
$$sLobLocator to be 0. Is this a bug, or is this by design? If this
is by design, is there a proper way to determine whether a LOB Locator
contains NULL?

Thanks for any insight!

Re: DBD::Oracle -- NULL LOB Locator is not "null"

am 29.05.2007 20:28:47 von scoles

I think there was a patch for that one submitted but not released a while
ago. I will test this against the the current version and see what I get.


""Sven Miller"" wrote in message
news:8646c5f30705241108p6f24bfc1r51f532619ef5f540@mail.gmail .com...
> (DBD::Oracle version 1.17)
> Given the following:
>
> my $sLobLocator;
> my $hSQL = $hDB->prepare(q{
> BEGIN
> :lob := NULL;
> END;
> }, { ora_auto_lob => 0 });
>
> $hSQL->bind_param_inout( ':lob', \$sLobLocator, 0, { ora_type =>
> ORA_BLOB } );
> $hSQL->execute;
> print "\$sLobLocator = $sLobLocator\n";
> print "\$\$sLobLocator = $$sLobLocator\n";
>
> The output is:
>
> $sLobLocator = OCILobLocatorPtr=SCALAR(0x1632d10)
> $$sLobLocator = 25412916
>
> I expected for $sLobLocator to be undefined or empty, or at least for
> $$sLobLocator to be 0. Is this a bug, or is this by design? If this
> is by design, is there a proper way to determine whether a LOB Locator
> contains NULL?
>
> Thanks for any insight!