perlscript warnings bei Textformatierung
-
Also ich bastle grade ein Script das zwei Datenbanken abgleicht.
Die eine ist ne Oracle-DB (auf die ich keinen direkten Zugriff über Perl habe)
Die andere ist eine flache Datei mit Trennzeichen.Auf jeden Fall bekomme ich beim Ausführen (perl -w) immer ne warning, daß mein Script das Formatierungszeichen "%T" nicht kennt.
$text = "DECLARE \n" ." p_isn sd_termin.isn_termin\%TYPE;\n" ." p_einsatz_datum VARCHAR2(20);\n" ." p_qs_anfang VARCHAR2(20);\n" ." p_qs_ende VARCHAR2(20);\n" ." p_bemerkung sd_termin.bemerkung\%TYPE;\n" ."BEGIN\n" ." p_isn := $_[0];\n" ." p_einsatz_datum := \'$_[1] 03:00:00\';\n" ." p_qs_anfang := \'$_[2] 18:00:00\';\n" ." p_qs_ende := \'$_[3] 18:00:00\';\n" ." p_bemerkung := \'$_[4]\';\n" ."SD_Pack_Termin.Upd_Termin(p_isn, p_einsatz_datum, p_qs_anfang, p_qs_ende, p_bemerkung);\n" ."END;\n" ."/\n"; printf UPD $text;
Wie man erahnen kann, stammt das Ganze vom %TYPE, womit ich für den Prozeduraufruf einen Spaltentyp übernehme. Das Komische daran ist nur, daß ich das % mittels \ entwertet habe.
Kann mir das wer erklären?
-
Jaaa, wenn man nicht schläft, findet man raus, daß nur Steuerzeichen mit \ entwertet werden.
Nen % ist kein Steuerzeichen, sondern ein Substitutionszeichen. - sinnloserweise gibts da nen Unterschied. Es funktioniert zwar mit \ aber perl wirft eine Warnung aus. Richtig gehts mit %%. (Hab das Ganze über nen uraltes C-Buch rausgefunden...)
Manchmal frag ich mich, ob ich nicht lieber in Rente gehen sollte