带有Win32:ODBC / DBI的PERL可以很好地读取许多表,然后一个表不返回任何内容


##Read table staStations
if ($mssqldb->Sql("SELECT stationID, security, dockingCostPerVolume, maxShipVolumeDockable, officeRentalCost, operationID, stationTypeID, corporationID, solarSystemID, constellationID, regionID, stationName, reprocessingEfficiency, reprocessingStationsTake, reprocessingHangarFlag
 FROM staStations")) {
    print "SQL Error: " . $mssqldb->Error() . "n";
    $mssqldb->disconnect;
    exit;
}

# Read table staStations
$count = 0 ;
while ($mssqldb->FetchRow) {
    my ($stationID, $security, $dockingCostPerVolume, $maxShipVolumeDockable, $officeRentalCost, $operationID, $stationTypeID, $corporationID, $solarSystemID, $constellationID, $regionID, $stationName, $reprocessingEfficiency, $reprocessingStationsTake, $reprocessingHangarFlag) = $mssqldb->Data();  ### Get data values from the row
    $stationName =~ s/'/'/g;
    $mysqlconnect->do("INSERT INTO staStations(stationID, security, dockingCostPerVolume, maxShipVolumeDockable, officeRentalCost, operationID, stationTypeID, corporationID, solarSystemID, constellationID, regionID, stationName, reprocessingEfficiency, reprocessingStationsTake, reprocessingHangarFlag)
    VALUES ('$stationID', '$security', '$dockingCostPerVolume', '$maxShipVolumeDockable', '$officeRentalCost', '$operationID', '$stationTypeID', '$corporationID', '$solarSystemID', '$constellationID', '$regionID', '$stationName', '$reprocessingEfficiency', '$reprocessingStationsTake', '$reprocessingHangarFlag') ;");
    $count = $count + 1 ;
    print $count . " Rows into staStations n" ;
}

第一部分工作正常

    if ($mssqldb->Sql("SELECT iconID, iconFile, description FROM eveIcons")) {
    print "SQL Error: " . $mssqldb->Error() . "n";
    $mssqldb->disconnect;
    exit;
}

# write table eveIcons
foreach ($mssqldb->FetchRow()) {
    my ($iconID, $iconFile, $description) = $mssqldb->Data();  ### Get data values from the row
    $description =~ s/'/'/g;
    #$iconFile  =~ s/_/_/g;
    print "iconID: " . $iconID . "n" ;
    print "file: " . $iconFile . "n" ;
    print "desc: " . $description . "n n" ;
    $mysqlconnect->do("INSERT INTO eveIcons(`iconID`, `iconFile`, `description`)
    VALUES ('$iconID', '$iconFile', '$description') ;");
    $count = $count + 1 ;
    print $count . " Rows into eveIcons n" ;
}

找不到问题,但未返回任何内容这不会读取任何数据。

它将"0"放在我的 MySql 表的第一列中

MSSQL表中有1689条记录,我在做什么??

我在从mssql读取长数据列时遇到了麻烦,LongTruncOk和LongReadLen解决了它们。

看来你在写它们时遇到了麻烦。试着看看这个技巧:http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=%2Fcom.ibm.db2.udb.apdv.sample.doc%2Fdoc%2Fperl%2Fs-dtlob-pl.htm

有关如何编写 Blob 的示例。尝试将其应用于您的描述字段。

我不太明白为什么,但是关于MSSQL服务器上的描述字段的一些事情正在尝试分配大量内存,一旦我停止尝试复制该列,它就可以正常工作,

更多信息MSSQL 表上的数据类型设置为 VARCHAR(MAX),尽管该列中没有一个字段超过 127 个字符

相关内容

最新更新