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 😕 😮


Anmelden zum Antworten