- 论坛徽章:
- 0
|
仙子的关于编码的文章我也看了,对于输入和输出现在有点理解了,但目前程序的问题还么有解决。
下面附上我的程序- #!/usr/bin/perl
- use XML::LibXML;
- use strict;
- use Config::General;
- use Data::Dumper;
- use DBI;
- use Encode;
- #获取数据库信息
- my $conf = new Config::General( -ConfigFile => "c:\\myperl\\fwqxx_in.ini");
- my %config = $conf -> getall;
- #发起数据库连接
- my $dbh = DBI->connect("DBI:Oracle:$config{DB_NAME}",$config{DB_USER},$config{DB_PASS},{RaiseError => 1,AutoCommit => 0});
- #载入分析xml文件
- my $prsr = XML::LibXML->new() or die "aaaaaa\n";
- my $doc = $prsr->parse_file("c:\\myperl\\ceshi.xml") or die "aaaaaa\n";
- my $root = $doc->documentElement();
- my @children = $root->childNodes();
- #读取每一行,并存入数据库
- foreach my $node (@children){
- my @data_child = $node->childNodes;
- my @datanames;
- my @datadatas;
- foreach my $data (@data_child){
- my $dataname1 = $data->nodeName();
- my $datadata1 = $data->textContent;
- $datadata1 = '\''.$datadata1.'\'';
- chomp ($datadata1);
- chomp ($dataname1);
- push (@datanames,$dataname1);
- push (@datadatas,$datadata1);
-
- }
- my $dataname = join(',',@datanames);
- my $datadata = join(',',@datadatas);
- $datadata = encode("ascii",$datadata);
- #if undef($datadata){
-
- my $sql= sprintf "insert into maa_gzzzl (%s) values (%s)",$dataname,$datadata;
- print $sql."\n";
- my $sth = $dbh->prepare($sql);
- $sth->execute;
- $dbh->commit;
- $sth->finish;
- #}
- }
- $dbh->disconnect;
复制代码 |
|