mysql:11282
From: "KAWAI,Takanori" <"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Sun, 27 Mar 2005 22:54:13 +0900
Subject: [mysql 11282] Re: perlからのストアドプロシージャーの使い方を教えて下さい
川合孝典です。 ----- Original Message ----- From: "HORI" <john.smith@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Saturday, March 26, 2005 10:06 PM Subject: [mysql 11279] perlからのストアドプロシージャーの使い方を教えて下さい > いつもお世話になっております。堀と申します。 (中略) > hori@debian:~$ ./aa.pl > DBD::mysql::st execute failed: SELECT in a stored procedure must have > INTO at ./aa.pl line 6. このメッセージを読んでますか? stored procedureの中でSELECTを実行しただけでは値を取得しようと しても、そりゃ無理かもと思うのですけど。 http://dev.mysql.com/doc/mysql/en/create-procedure.html のサンプルをベースにちょっとだけ変えたもので試しましたけど、 特に問題はないようでした。 #残念ながらbind_param_inoutでは #DBD::mysql::st bind_param_inout failed: Output parameters not implemented #ということでしたけど [サンプル] use strict; use DBI; my $hDb = DBI->connect('dbi:mysql:database=test', 'root', 'hogehoge', {RaiseError => 1, PrintError=> 0, AutoCommit => 1}); # 先に削除 eval {$hDb->do('DROP PROCEDURE simpleproc');}; eval {$hDb->do('DROP FUNCTION hello');}; # プロシージャ、ファンクションを作成 eval { $hDb->do( 'CREATE PROCEDURE simpleproc (OUT param1 INT) BEGIN SELECT COUNT(*) INTO param1 FROM t; SET param1 = param1 + 10; END'); $hDb->do( q{CREATE FUNCTION hello (s VARCHAR(20)) RETURNS VARCHAR(50) BEGIN RETURN CONCAT('やぁ', s , '調子どう?'); END}); }; die $@ if($@); # 1. simpleprocを実行して戻り値をSELECT $hDb->do('call simpleproc(@rtnVal)'); my $iVal = $hDb->selectrow_array('SELECT @rtnVal'); print "戻り値:" . $iVal . "\n"; # 2. my $hSt = $hDb->prepare(q{SELECT hello(?)}); $hSt->execute('堀さん'); while (my $raRes = $hSt->fetchrow_arrayref()) { print join(',', @$raRes) . "\n"; } [実行結果] 戻り値:13 やぁ堀さん調子どう? =================================================== 川合 孝典 (Hippo2000) DBI日本語メーリングリスト管理人、Kansai.pm所属 kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx http://homepage3.nifty.com/hippo2000/、http://www.hippo2000.info/ perldocの日本語情報ならperldocjp:翻訳してみませんか? http://perldocjp.sourceforge.jp/ ===================================================
11279 2005-03-26 22:06 [HORI <john.smith@xxx] perlからのストアドプロシージャーの使い方を教えて下さい -> 11282 2005-03-27 22:54 ┗["KAWAI,Takanori" <GC] 11289 2005-03-28 23:10 ┗[HORI <john.smith@xxx]