User since
2006-05-11
10
Artikel
BenutzerIn
Hallo Leute,
ich muss ein Script bauen mit dem ein CSV File erzeugt wird. Da ich davon leider überhaupt keine Ahnung habe hoffe ich das mir hier einer Helfen kann.
Dies ist mein erstellter Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use CGI qw/:standard/;
use Oraperl;
use db_tool;
use Net::SMTP;
use MIME::Base64 qw(encode_base64);
$lda = db_connect("dwh_maint") || die "$ora_errstr\n";
print CGI::header(-attachment=>'rfc.csv',-type=>'text/csv');
sub CSV_wird_generiert {
$cursor = &ora_open($lda,"select M_AUFTRAGSNUMMER, M_LEISTUNGSART, M_PHASENDAUER, SAP_KST_SENDE, SAP_KST_EMPFANG from MAX_ABR where K_ABRECHNUNGSMONAT = '01.09.2002'")|| die "$ora_errstr\n";
open ( FILEHAND, "> ./rfc.csv") || print "error";
while (@e=&ora_fetch($cursor))
{
$e[4] =~ s/\n\r//g;
$e[4] =~ s/\n//g;
$e[4] =~ s/\r//g;
$e[8] =~ s/\n\r//g;
$e[8] =~ s/\n//g;
$e[8] =~ s/\r//g;
printf FILEHAND "$e[0];$e[1];$e[2];$e[3];$e[4];";
}
close (FILEHAND);
&ora_close($cursor);
&ora_commit($lda) || die "$ora_errstr\n";
}
Danke im vorraus
User since
2005-01-17
14902
Artikel
Admin1
Mit
Text::CSV kannst du CSV-Dateien erstellen.
User since
2006-05-11
10
Artikel
BenutzerIn
hmm da ist ja wirklich leider voll kein Plan von Perl habe, weiß ich nicht was ich damit anfangen soll ist der Rest des Codesa denn soweit richtig?
User since
2003-08-04
14371
Artikel
ModeratorIn
Als erstes solltest Du immer
[tt]use strict[/tt] verwenden. Dann kannst Du statt
$e[4] =~ s/\n\r//g;
$e[4] =~ s/\n//g;
$e[4] =~ s/\r//g;
das hier schreiben:
Du solltest vielleicht auch auf
DBI umsteigen. Warum nicht OraPerl?
Steht hier
Du hast im Title stehen, dass Du ein Problem beim Erstellen der Datei hast, in Deinem Post ist aber nicht zu erkennen
was das Problem ist...
User since
2006-05-11
10
Artikel
BenutzerIn
Problem: Wenn ich das Script ausfüre kommt das Fenster öffnen bzw speichern unter... halt stadard Windows Meldung.
nur wenn ich dann auf öffnen gehe ist das File leer, und es soll mit dem ERgebins des SQL&´s gefüllt sein...
So deutlicher geworden?
User since
2003-08-04
14371
Artikel
ModeratorIn
Wo rufst Du denn die Subroutine auf, die die CSV-Daten erstellen soll?
User since
2006-05-11
10
Artikel
BenutzerIn
es wird nur über den browser dieses Script aufgerufen, und dann soll halt das CSV File erstellt werden werden...
Sorry wenn ich mich so doof anstelle, aber ich habe da echt 0 plan von
User since
2006-05-11
10
Artikel
BenutzerIn
Danke das hat soweit geklappt...
nun habe ich noch das Problem, das ich eine Number Spalte in der Datenbank habe, in dem z.B.: 1,17 drinsteht, jedoch in dem CSV file als Jan 17 ausgegeben wird.
Wäre über eine Antwort nochmal sehr dankbar.
Gruß Banker
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Bist du sicher, dass das "Jan 17" so in der CSV-Datei steht?
Oder lädst du die Datei nur in eine Tabellenkalkulation, die dann den falshcen Wert anzeigt?
(Meine Vermutung: In der DB steht eigentlich nicht "1,17" sondern "1.17", und das wird beim Textimport in Excel o.ä. in ein Datum umgewandelt.)