Hi

On the basis of what you have mentioned, I have made a sample code.

Let me know if my understanding is different from yours.

The Perl Code is copied below :-


# cat u.pl
#!/usr/bin/perl
##!/u01/app/oracle/product/10.1.0/db_1/perl/bin/perl

#
# Hi all, I'm in need of a loop, can't seem to find what I'm looking for
online.
# I want to loop over this array ref inserting each hash value into the DB
at each iteration.
# I've got the following data structure which is assigned to $aref:

use DBI;

$VAR1 = [
                {            'rate' => '1.98',            'name' => 'Dollars
-> Sterling'       },
                {            'rate' => '1.5',             'name' =>
'Sterling -> Euros'         },
                {            'rate' => '0.75',            'name' => 'Dollars
-> Euros'          },
                {            'rate' => '2.05',            'name' =>
'Sterling -> Dollars'       },
                {            'rate' => '0.72',            'name' => 'Euro ->
Sterling'          },
                {            'rate' => '1.52',            'name' => 'Euro ->
Dollars'           },
                {            'rate' => '1.98',            'name' => 'Amex
Exchange Rate'        }
        ];

$dbh = DBI->connect ("DBI:Oracle:demo1", "asaxen01", "asaxen01", {AutoCommit
=> 0, PrintError => 1} ) or die "Can not connect to the database : $!\n\n" ;

foreach $array_element (@$VAR1)
{
        print "\n\$array_element = [$array_element]";

        foreach $key1 (keys %{$array_element})
        {
                $value1 = ${$array_element}{$key1};

                print "\nkey1 = [$key1] : value1 = [$value1]";

                $query = "insert into mytable123 values ('$key1',
'$value1')";

                $sth = $dbh->prepare ("$query");

                $sth->execute ();
        }
}

if (defined $dbh->errstr)
{
        $dbh->rollback;
}
else
{
        $dbh->commit;
}

$dbh->disconnect;

print "\n";

#
The output from this code in the database is :-


SQL> select * from mytable123;

CATEGORY
VALUE1
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
rate
1.98
name
Dollars -> Sterling
rate
1.5
name
Sterling -> Euros
rate
0.75
name
Dollars -> Euros
rate
2.05
name
Sterling -> Dollars
rate
0.72
name
Euro -> Sterling
rate
1.52

CATEGORY
VALUE1
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
name
Euro -> Dollars
rate
1.98
name
Amex Exchange Rate

14 rows selected.

SQL>


Regards,
Amit Saxena



On 6/18/08, Graeme McLaren <[EMAIL PROTECTED]> wrote:
>
>
> Hi all, I'm in need of a loop, can't seem to find what I'm looking for
> online.  I want to loop over this array ref inserting each hash value into
> the DB at each iteration.I've got the following data structure which is
> assigned to $aref:
>
> $VAR1 = [          {            'rate' => '1.98',            'name' =>
> 'Dollars -> Sterling'          },          {            'rate' =>
> '1.5',            'name' => 'Sterling ->
> Euros'          },          {            'rate' => '0.75',            'name'
> => 'Dollars -> Euros'          },          {            'rate' =>
> '2.05',            'name' => 'Sterling ->
> Dollars'          },          {            'rate' =>
> '0.72',            'name' => 'Euro ->
> Sterling'          },          {            'rate' =>
> '1.52',            'name' => 'Euro ->
> Dollars'          },          {            'rate' =>
> '1.98',            'name' => 'Amex Exchange Rate'          }        ];
>
>
> Can anyone help out with this?
>
> Much appreciated.
>
> G :)
>

Reply via email to