zoukankan      html  css  js  c++  java
  • Perl-DBI

    [oracle@jhoa 3]$ perl dbi.pl sh-3.2$ c
    sh: c: command not found
    sh-3.2$ cat dbi.pl 
    #!/usr/bin/perl   
    use strict;  
    use DBI;  
    my $dbName = 'orcl';  
    my $dbUser = 'test';  
    my $dbUserPass = 'test';  
    my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database ";
    my $hostSql = qq{select table_name,tablespace_name,status from user_tables};  
    #你用print是打印sql语句和sth对象,看到这个说明没有错误  
    #另外,perl中打印对象或其它复杂数据结构最好用use Data::Dumper;print Dumper $obj;这种形式,要不你就只能看到HA  
    #$dbh->prepare($sql),只是生成了一个statement handle对象而已,该对象调用execute后,通过它的fetchrow_array()就  
    #  
    
    my $sql = "select * from v$lock";  
    
    my $sth = $dbh->prepare($sql);  
    print "$sth..
    ";  
      
    $sth->execute();  
    
    while (my  @arr = $sth->fetchrow_array()){
    print "@arr
    ";
    }
      
    $sth->finish;  
    sh-3.2$ perl dbi.pl | more
    DBI::st=HASH(0x5276730)..
    0000000580C36DC0 0000000580C36DE0 1650 XR 4 0 1 0 799125 0
    0000000580C36E58 0000000580C36E78 1650 CF 0 0 2 0 799125 0
    0000000580C36F88 0000000580C36FA8 1650 RS 25 1 2 0 799121 0
    0000000580C370B8 0000000580C370D8 1651 RT 1 0 6 0 799121 0
    0000000580C37318 0000000580C37338 1652 MR 1 0 4 0 799121 0
    0000000580C373B0 0000000580C373D0 1652 MR 2 0 4 0 799121 0
    
    
    
    $array = $sth->fetchrow_array取得下一行,返回字段值的数组。
    
    selectall_arrayref:          返回数组的引用
    
    
    #!/usr/bin/perl   
    #use strict;  
    use DBI;  
    my $dbName = 'orcl';  
    my $dbUser = 'test';  
    my $dbUserPass = 'test';  
    my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database ";
    #  
    #数组引用
    
    my $users = $dbh->selectall_arrayref("SELECT username FROM dba_users ORDER BY 1", { Slice => {} } );
    print "$users is $users
    ";
    #$user 为HASH
    foreach my $user ( @$users ) { print "dba_users: $user->{USERNAME}
    ";}
    $rc  = $dbh->disconnect;
    
    
      
    sh-3.2$ perl dbi1.pl 
    $users is ARRAY(0x1c49e0e0)
    dba_users: ANONYMOUS
    dba_users: COWORK_CZSH
    dba_users: CTXSYS
    dba_users: CUPS
    dba_users: DBSNMP
    dba_users: DIP
    
    my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database "; 
    
    $dbh 数据库句柄
    
    $sth->execute(); 执行语句句柄
    
    $dbh->prepare($sql),只是生成了一个statement handle对象而已,该对象调用execute后
    
    connect 建立到一个数据库服务器的连接
    disconnect 断开数据库服务器的连接
    prepare 准备执行一个SQL语句
    execute 执行准备好的语句
    do 准备并执行一个SQL语句
    quote 加引号于要插入的字符串或BLOB值
    fetchrow_array 作为一个字段数组取出下一行
    fetchrow_arrayref 作为一个字段的引用数组取出下一行
    fetchrow_hashref 作为一个哈希表的引用取出下一行
    fetchall_arrayref 作为一个字段数组取出所有数据
    finish 完成一条语句并且让系统释放资源
    rows 返回受影响的行数
    data_sources 返回可在localhost上得到的数据库的数组
    ChopBlanks 控制fetchrow_*方法是否剥去空格
    NUM_OF_PARAMS 在准备的语句中的占位(placeholder-参数)的数目
    NULLABLE 其列可以是NULL
    trace 执行调试跟踪
    ##########################################################################
    $dbh 数据库句柄
    $sth 语句句柄
    $rc 返回代码(经常是一个状态)
    $rv 返回值(经常是一个行数)
    

  • 相关阅读:
    silverlight 网站 iis发布
    使用PerfView诊断.Net GC的问题
    七种方法实现单例模式
    java多线程的学习之路(二)
    java多线程的学习之路(一)
    几种特殊的二叉树
    解析json字符串,把json字符串转换成Java对象
    KMP算法的理解
    常用 Git 命令清单
    Jquery.cookie.js 源码和使用方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351932.html
Copyright © 2011-2022 走看看