[email protected] ("David E. Wheeler") wrote:

>> I should have pointed out more clearer the problem :-).  The
>> query itself is fine; tmpData in this case is probably mis-
>> named as it is really meant to represent the (permanent)
>> data in PostgreSQL.

>> The question is how to pass the data structure:

>> | my @Data = ([1, 'Z'], [4, 'E'], [7, 'L']);

>> from the Perl side via DBD::Pg to use it for comparison (or
>> whatever) in PostgreSQL.

> You could pass it as a nested text array. [...]

Ah, that's a nice approach.  Basically:

| my $s = $DB->prepare ('SELECT unnest(:Data::TEXT[][]);') or die ($DB->errstr 
());
| my @Data = (['1', 'A'], ['4', 'C'], ['7', 'Z']);
| $s->bind_param (':Data', \@Data) or die ($DB->errstr ());
| $s->execute () or die ($DB->errstr ());

works, but flattens the structure.  Is using
generate_subscripts() the only way to access the data tuple
by tuple?

Thanks,
Tim

Reply via email to