我有一个插入查询:
INSERT INTO EMP (ENAME,DATE,HIRE)
VALUES
('John',TO_DATE('03/14/2005 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),'YES');
我想解析 TO_DATE 部分并用 perl 替换里面的日期。(作为'14-MAR-05')
解析代码是:
+90 if ( $statement =~ /(.*)TO_DATE\((.*)\),(.*)/ )
+91 {
+92 my $date_format;
+93 if( $2 =~ /(.*?)(..\/..\/....)(.*)/ )
+94 {
+95 my ($mon,$day,$year) = split ( /\//, $2 );
+96 foreach my $i (%month)
+97 {
+98 if ( $mon eq $i )
+99 {
+100 $year =~ s/^..//;
+101 $date_format = "'" . "$day" . "-" . "$month{$i}" . "-" . "$year". "'";
+102 }
+103 }
+104 }
+105 $statement =~ s/TO_DATE(.*\)?)/$date_format/;
第 105 行替换了字符串的整个结尾。我在这里做错了什么?