注意:连接时候使用SID指定的database,所以没有在连接中指定database.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
#!/usr/bin/perl use strict; use warnings; use DBI; my $db_name = "geneva_admin" ; my $db_passwd = "geneva_admin" ; my $dbh =DBI-> connect ( "dbi:Oracle:" , "$db_name" , "$db_passwd" ) or die "Can't connect to oracle database:$DBI::errstr\n" ; my $sth = $dbh ->prepare(" select a,b from a_tmp where a=2") or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute or die "Can't execute:$DBI::errstr\n" ; while ( my @row = $sth ->fetchrow_array()){ my ( $a , $b ) = @row ; print "1..\$a=$a,\$b=$b\n" ; } $sth ->finish(); my $row =3; my $sql =" select a,b from a_tmp where a = ?"; $sth = $dbh ->prepare( $sql ) or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute( $row ) or die "Can't execute:$DBI::errstr\n" ; while ( my @row = $sth ->fetchrow_array()){ my ( $a , $b ) = @row ; print "2..\$a=$a,\$b=$b\n" ; } $sth ->finish(); my $row_a =3; my $row_c =0; $sql =" select a,b from a_tmp where a = ? and c = ?"; $sth = $dbh ->prepare( $sql ) or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute( $row_a , $row_c ) or die "Can't execute:$DBI::errstr\n" ; while ( my @row = $sth ->fetchrow_array()){ my ( $a , $b ) = @row ; print "3..\$a=$a,\$b=$b\n" ; } $sth ->finish(); for $row (1,2,3){ $sql =" select a,b from a_tmp where a = ?"; $sth = $dbh ->prepare( $sql ) or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute( $row ) or die "Can't execute:$DBI::errstr\n" ; while ( my @row = $sth ->fetchrow_array()){ my ( $a , $b ) = @row ; print "4..\$a=$a,\$b=$b\n" ; } } $sth ->finish(); #for $row(1,2,3){ #$sql="insert into a_tmp # values (?,?,?)"; #$sth=$dbh->prepare($sql) or die "Can't prepare SQl prepare:$DBI::errstr\n"; #$sth->execute($row,$row+1,$row+2) or die "Can't execute:$DBI::errstr\n"; #} ##$dbh->commit; #$sth->finish(); #$sql="insert into a_tmp # values (100,30,2)"; #$sth=$dbh->prepare($sql) or die "Can't prepare SQl prepare:$DBI::errstr\n"; #$sth->execute or die "Can't execute:$DBI::errstr\n"; ##$dbh->commit; #$sth->finish(); for $row (1,2,3){ $sql ="update a_tmp set b = ? , c = ? where a = ?"; $sth = $dbh ->prepare( $sql ) or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute( $row +100, $row +50, $row ) or die "Can't execute:$DBI::errstr\n" ; } #$dbh->commit; $sth ->finish(); for $row (1,2,3){ $sql =" delete from a_tmp where c=2"; $sth = $dbh ->prepare( $sql ) or die "Can't prepare SQl prepare:$DBI::errstr\n" ; $sth ->execute or die "Can't execute:$DBI::errstr\n" ; } #$dbh->commit; $sth ->finish(); $dbh -> do ( "insert into a_tmp values (1,1,1)" ) or die "$DBI::errstr\n" ; $dbh -> do ( "delete from a_tmp where c=51" ) or die "$DBI::errstr\n" ; #$dbh->commit; $sth ->finish(); $dbh ->disconnect; |