Perl脚本替换语法

Perl脚本替换语法,perl,Perl,下面是我的Perl脚本 str_replace(rtrim(c_manager),'''','_'),'."\n". throws error str_replace(rtrim(c_manager), '''" pl_recert_output.pl第262行的u'后面的名称不正确 请帮助解决此问题: $sql = 'select rtrim(f_admin_disabled),'."\n". ' convert(varchar,t_pas

下面是我的Perl脚本

str_replace(rtrim(c_manager),'''','_'),'."\n".
 throws error  

str_replace(rtrim(c_manager), '''"
pl_recert_output.pl第262行的u'后面的名称不正确

请帮助解决此问题:

$sql = 'select rtrim(f_admin_disabled),'."\n".
                '       convert(varchar,t_password,101),'."\n".
                '       rtrim(c_email),'."\n".
                '       str_replace(rtrim(c_manager),'''','_'),'."\n".
                '       rtrim(c_mgr_email)'."\n".
                '  from tuserprofile'."\n".
                ' where ic_user1 = '."'$user_id'"."\n";

在单引号字符串中有单引号

引号字符串中的单引号必须用
\'
转义

但是,最好使用for cleaner代码:

$sql = <<EOF;
select rtrim(f_admin_disabled),
       convert(varchar,t_password,101),
       rtrim(c_email),
       str_replace(rtrim(c_manager),'''','_'),
       rtrim(c_mgr_email)
    from tuserprofile
    where ic_user1 = '$user_id'
EOF
;

$sql=您的单引号字符串中有单引号

引号字符串中的单引号必须用
\'
转义

但是,最好使用for cleaner代码:

$sql = <<EOF;
select rtrim(f_admin_disabled),
       convert(varchar,t_password,101),
       rtrim(c_email),
       str_replace(rtrim(c_manager),'''','_'),
       rtrim(c_mgr_email)
    from tuserprofile
    where ic_user1 = '$user_id'
EOF
;

$sql=您的单引号字符串中有单引号

引号字符串中的单引号必须用
\'
转义

但是,最好使用for cleaner代码:

$sql = <<EOF;
select rtrim(f_admin_disabled),
       convert(varchar,t_password,101),
       rtrim(c_email),
       str_replace(rtrim(c_manager),'''','_'),
       rtrim(c_mgr_email)
    from tuserprofile
    where ic_user1 = '$user_id'
EOF
;

$sql=您的单引号字符串中有单引号

引号字符串中的单引号必须用
\'
转义

但是,最好使用for cleaner代码:

$sql = <<EOF;
select rtrim(f_admin_disabled),
       convert(varchar,t_password,101),
       rtrim(c_email),
       str_replace(rtrim(c_manager),'''','_'),
       rtrim(c_mgr_email)
    from tuserprofile
    where ic_user1 = '$user_id'
EOF
;

$sql=您需要在变量赋值中转义单引号:

my $user_id = 'test';
my $sql = 'select rtrim(f_admin_disabled),'."\n".
            '       convert(varchar,t_password,101),'."\n".
            '       rtrim(c_email),'."\n".
            '       str_replace(rtrim(c_manager),\'\'\'\',\'_\'),'."\n".
            '       rtrim(c_mgr_email)'."\n".
            '  from tuserprofile'."\n".
            ' where ic_user1 = '."'$user_id'"."\n";

print $sql;
结果:

   select rtrim(f_admin_disabled),
   convert(varchar,t_password,101),
   rtrim(c_email),
   str_replace(rtrim(c_manager),'''','_'),
   rtrim(c_mgr_email)
   from tuserprofile
   where ic_user1 = 'test'

检查这是否是您期望的结果。

您需要在变量赋值中转义单引号:

my $user_id = 'test';
my $sql = 'select rtrim(f_admin_disabled),'."\n".
            '       convert(varchar,t_password,101),'."\n".
            '       rtrim(c_email),'."\n".
            '       str_replace(rtrim(c_manager),\'\'\'\',\'_\'),'."\n".
            '       rtrim(c_mgr_email)'."\n".
            '  from tuserprofile'."\n".
            ' where ic_user1 = '."'$user_id'"."\n";

print $sql;
结果:

   select rtrim(f_admin_disabled),
   convert(varchar,t_password,101),
   rtrim(c_email),
   str_replace(rtrim(c_manager),'''','_'),
   rtrim(c_mgr_email)
   from tuserprofile
   where ic_user1 = 'test'

检查这是否是您期望的结果。

您需要在变量赋值中转义单引号:

my $user_id = 'test';
my $sql = 'select rtrim(f_admin_disabled),'."\n".
            '       convert(varchar,t_password,101),'."\n".
            '       rtrim(c_email),'."\n".
            '       str_replace(rtrim(c_manager),\'\'\'\',\'_\'),'."\n".
            '       rtrim(c_mgr_email)'."\n".
            '  from tuserprofile'."\n".
            ' where ic_user1 = '."'$user_id'"."\n";

print $sql;
结果:

   select rtrim(f_admin_disabled),
   convert(varchar,t_password,101),
   rtrim(c_email),
   str_replace(rtrim(c_manager),'''','_'),
   rtrim(c_mgr_email)
   from tuserprofile
   where ic_user1 = 'test'

检查这是否是您期望的结果。

您需要在变量赋值中转义单引号:

my $user_id = 'test';
my $sql = 'select rtrim(f_admin_disabled),'."\n".
            '       convert(varchar,t_password,101),'."\n".
            '       rtrim(c_email),'."\n".
            '       str_replace(rtrim(c_manager),\'\'\'\',\'_\'),'."\n".
            '       rtrim(c_mgr_email)'."\n".
            '  from tuserprofile'."\n".
            ' where ic_user1 = '."'$user_id'"."\n";

print $sql;
结果:

   select rtrim(f_admin_disabled),
   convert(varchar,t_password,101),
   rtrim(c_email),
   str_replace(rtrim(c_manager),'''','_'),
   rtrim(c_mgr_email)
   from tuserprofile
   where ic_user1 = 'test'

检查这是否是您期望的结果。

不能跳过单引号变量arugument…在“Leary”附近抛出错误语法。(SQL-42000)[state was 42000 now HY000][MERANT][ODBC Sybase ASE driver][SQL Server]字符串“help for other solution”前未关闭的引号如果您只将最后一行写为:“where ic_user1=”。$user_id.\n”;您可以打印在DB上运行的perl程序的输出,并调整变量赋值,使其保持有效的perl脚本并发出正确的DB查询。stru replace(rtrim(c\U管理器)、\'\'\'\'、\'\'\'\')、'。“\n”这些行抛出相同的错误,不能跳过单引号的变量arugument。。。。。例如:在c_manager列中,单引号内的值为'S'achin',变量名替换脚本,即,S_achin,如我所愿…..帮助不能跳过单引号内的变量arugument…在'Leary'附近抛出错误语法。(SQL-42000)[state was 42000 now HY000][MERANT][ODBC Sybase ASE driver][SQL Server]字符串“help for other solution”前未关闭的引号如果您只将最后一行写为:“where ic_user1=”。$user_id.\n”;您可以打印在DB上运行的perl程序的输出,并调整变量赋值,使其保持有效的perl脚本并发出正确的DB查询。stru replace(rtrim(c\U管理器)、\'\'\'\'、\'\'\'\')、'。“\n”这些行抛出相同的错误,不能跳过单引号的变量arugument。。。。。例如:在c_manager列中,单引号内的值为'S'achin',变量名替换脚本,即,S_achin,如我所愿…..帮助不能跳过单引号内的变量arugument…在'Leary'附近抛出错误语法。(SQL-42000)[state was 42000 now HY000][MERANT][ODBC Sybase ASE driver][SQL Server]字符串“help for other solution”前未关闭的引号如果您只将最后一行写为:“where ic_user1=”。$user_id.\n”;您可以打印在DB上运行的perl程序的输出,并调整变量赋值,使其保持有效的perl脚本并发出正确的DB查询。stru replace(rtrim(c\U管理器)、\'\'\'\'、\'\'\'\')、'。“\n”这些行抛出相同的错误,不能跳过单引号的变量arugument。。。。。例如:在c_manager列中,单引号内的值为'S'achin',变量名替换脚本,即,S_achin,如我所愿…..帮助不能跳过单引号内的变量arugument…在'Leary'附近抛出错误语法。(SQL-42000)[state was 42000 now HY000][MERANT][ODBC Sybase ASE driver][SQL Server]字符串“help for other solution”前未关闭的引号如果您只将最后一行写为:“where ic_user1=”。$user_id.\n”;您可以打印在DB上运行的perl程序的输出,并调整变量赋值,使其保持有效的perl脚本并发出正确的DB查询。stru replace(rtrim(c\U管理器)、\'\'\'\'、\'\'\'\')、'。“\n”这些行抛出相同的错误,不能跳过单引号的变量arugument。。。。。例如:在c_管理器列中,单引号内的值为'S'achin',变量名替换脚本,即,S_achin,如我所需…..帮助