1

挿入クエリがあります:

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 行目は、文字列の末尾全体を置き換えています。ここで何が間違っていますか?

4

1 に答える 1