http://www.perlmonks.org?node_id=723517

cocl04 has asked for the wisdom of the Perl Monks concerning the following question:

All, I have a simple sql process in Perl that returns distinct id's. If I +load the id's into an array via a $row = $query->fetchrow_array, it d +umps ALL of the values from the one column into arry index '0' / $ro +w[0]. Is there a way to read in / fetch a distinct column of values +from a query and place each element / item in a different array index +....$row[0],$row[1],.....$row[n]! The data is currently in $alignmen +t. I can load the data into an array and it is fine. Query Return: i.e. $alignment = 'A01','B22','C99',....'nth'. $row[0] = 'A01', $row[1] = 'B22', $row[2] = 'C99'...$row[n] Finally, I am doing this to pass those id's to my Perl adn Sql code. +This process will keep me from setting up several perl processes for +the same thing. Please help....
################################## # # Connect to Oracle database. # ################################### my $connection = DBI->connect('dbi:Oracle:xxxx','xxxx','xxxx',) || die "Database connection not made: $DBI::errstr"; ############################ # # Set up Query for Store # ############################ my $stmt_1 = "select alignment from rd_n_dm_list"; ############################ # # Prepare Query # ############################ my $query = $connection->prepare($stmt_1); ############################ # # Execute Query # ############################ $query->execute() or die $connection->errstr;

Replies are listed 'Best First'.
Re: Single column Query into Multiple Arrays
by snopal (Pilgrim) on Nov 13, 2008 at 22:33 UTC
    my $rows = $query->fetchall_arrayref([0]); for my $id (@$rows) { print $id->[0]."\n"; }
      Thank you! I assume that in order to increment the array index...I have to use a while or a for loop??

        Iteration is a process used in objects to step though the member list of the component you require. It does not usually involve visible indexes since the purpose of an iterator is to maintain a pointer to the last used item, then when called it moves on to the next object.

        Using any appropriate looping code process is the standard method for reviewing those iterated objects, as long as that process detects the end of list indicator (usually undef) to break out of the loop.

Re: Single column Query into Multiple Arrays
by artist (Parson) on Nov 14, 2008 at 01:27 UTC
    You might want to look at http://dbi.perl.org/ if you are doing more programming with DBI.
    --Artist