将此dmp导入RDS Oracle的脚本有什么问题? [英] What's wrong with this script to import dmp to RDS Oracle?

查看:112
本文介绍了将此dmp导入RDS Oracle的脚本有什么问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将.dmp文件导入AWS中的RDS Oracle. 在干净的Windows EC2中,我可以使用SQL Developer连接到Oracle RDS.

I'm trying to import my .dmp file to RDS Oracle in AWS. In my clean Windows EC2, i can connect to Oracle RDS using SQL Developer.

   # RDS instance info
    my $RDS_PORT=1521;
    my $RDS_HOST="testphat17.citmdnq1zckt.ap-northeast-1.rds.amazonaws.com";
    my $RDS_LOGIN="testphat17/testphat17";
    my $RDS_SID="ORCL";
    my $dirname = ""C:\Users\Administrator\Desktop\datadump"";
    my $fname = $ARGV[0];
    my $data = "201712010305_CLOUDTOSAI";
    my $chunk = 8192;
    my $sql_open = "BEGIN perl_global.fh :=
    utl_file.fopen(:dirname, :fname, 'wb', :chunk); END;";
    my $sql_write = "BEGIN utl_file.put_raw(perl_global.fh,
    :data, true); END;";
    my $sql_close = "BEGIN utl_file.fclose(perl_global.fh);
    END;";
    my $sql_global = "create or replace package perl_global as
    fh utl_file.file_type; end;";
    my $conn =
    DBI>connect('dbi:Oracle:host='.$RDS_HOST.';sid='.$RDS_SID.';po
    rt='.$RDS_PORT,$RDS_LOGIN, '') || die ( $DBI::errstr .
    "\n") ;
    my $updated=$conn->do($sql_global);
    my $stmt = $conn->prepare ($sql_open);
    $stmt->bind_param_inout(":dirname", \$dirname, 12);
    $stmt->bind_param_inout(":fname", \$fname, 12);
    $stmt->bind_param_inout(":chunk", \$chunk, 4);
    $stmt->execute() || die ( $DBI::errstr . "\n");
    open (INF, $fname) || die "\nCan't open $fname for
    reading: $!\n";
    binmode(INF);
    $stmt = $conn->prepare ($sql_write);
    my %attrib = ('ora_type’,’24’);
    my $val=1;
    while ($val > 0) {
     $val = read (INF, $data, $chunk);
     $stmt->bind_param(":data", $data , \%attrib);
     $stmt->execute() || die ( $DBI::errstr . "\n"); };
    die "Problem copying: $!\n" if $!;
    close INF || die "Can't close $fname: $!\n";
    $stmt = $conn->prepare ($sql_close);
    $stmt->execute() || die ( $DBI::errstr . "\n");

错误说:无法识别的字符\ x93,由<-在y $ data之后的<= =-在这里在import-oracle.pl第8行的第12列附近– –

The error said: Unrecognized character \x93, marked by <-- HERE after y $data = <-- HERE near column 12 at import-oracle.pl line 8. –

推荐答案

您的引号字符在201712010305_CLOUDTOSAI;行中不正确,可能是单词或其他内容的错误复制/粘贴,将行更改为

Your quotes character are not correct in line "201712010305_CLOUDTOSAI";, probably some bad copy/paste from word or something else, change the line to

my $data = "201712010305_CLOUDTOSAI";

您将解决此错误

第32行的单引号也有误('ora_type’,’24’);您将需要更改

You also have wrong single quotes on line 32 ('ora_type’,’24’);you will need to change with

my %attrib = ('ora_type','24');

这篇关于将此dmp导入RDS Oracle的脚本有什么问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆