Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Problem with inserting data into MongoDB

by marto (Cardinal)
on Aug 14, 2015 at 10:54 UTC ( [id://1138560]=note: print w/replies, xml ) Need Help??


in reply to Problem with inserting data into MongoDB

"What is the problem????"

Scoping. $sqi is defined in an if statement (within a for loop), and you expect to use it outside of this. See your previous question usage of "my" keyword. use strict; would have caught this, among other problems:

Global symbol "$sqi" requires explicit package name at mongodb.pl line + 42.

Also Coping with Scoping.

Update: slight rewording

Replies are listed 'Best First'.
Re^2: Problem with inserting data into MongoDB
by ravi45722 (Pilgrim) on Aug 14, 2015 at 12:30 UTC
    #!/usr/bin/perl # use strict; use warnings; use MongoDB; use MongoDB::OID; use Spreadsheet::ParseExcel; use Spreadsheet::XLSX; use Spreadsheet::Read; use Tie::IxHash; my $date=$ARGV[0]; $date or $date=`date --date='1 day ago' +%d-%m-%Y`; chomp $date; my $file_path="/root/prac/packages/SDP_VAS_NQI-17-06-2015.xlsx"; my $workbook = ReadData($file_path,cells => 0 ); if(defined $workbook->[0]{'error'}) { print "Error occurred while processing $file_path:".$workbook->[0] +{'error'}."\n"; exit(-1); } my $worksheet = $workbook->[1]; my $max_rows = $worksheet->{'maxrow'}; my $sqi; my $cell_data=0; for my $row_num (15..($max_rows)) { $cell_data = $worksheet->{cell}[2][$row_num]; # same, unformatted if($date eq $cell_data) { $sqi = $worksheet->{cell}[23][$row_num]; # same, unformatted print "$sqi\n"; print "$cell_data\n"; print "$row_num\n"; } } my $db_host="172.16.15.115"; my $db_name="ravi"; my $client = MongoDB::MongoClient->new(host => $db_host, port => 2 +7017); my $database = $client->get_database( $db_name ); my $data = $database->get_collection("SDP_SQI"); my %insert_data_hourly=(); $insert_data_hourly{'date'}=$cell_data; $insert_data_hourly{'SQI'}=$sqi; my $id=$data->insert(\%insert_data_hourly);

    I updated as you guided. But it showing a repeated warning

     Use of uninitialized value $cell_data in string eq at ./excel_read.pl line 32.

    Its nearly repeating 35 to 40 times. Whats behind in it

      Have you looked at line 32 in your code? What happens there? Have you inspected the values that are used on that line? What is in them? Perl comes with documentation for all its warnings in warnings. Maybe you should read them.

      What does the message say? $cell_data is uninitialized. The assignment immediately preceding it is not finding a value. Perhaps those cells are empty?

      Dum Spiro Spero

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1138560]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (9)
As of 2024-04-23 08:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found