Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je appeler des procédures stockées MySQL à partir de Perl ?

Les procédures stockées MySQL qui produisent des ensembles de données nécessitent que vous utilisiez Perl DBD::mysql 4.001 ou une version ultérieure. (http://www.perlmonks.org/?node_id=609098 )

Vous trouverez ci-dessous un programme de test qui fonctionnera dans la nouvelle version :

mysql> delimiter //
mysql> create procedure Foo(x int)
  -> begin
  ->   select x*2;
  -> end
  -> //

perl -e 'use DBI; DBI->connect("dbi:mysql:database=bonk", "root", "")->prepare("call Foo(?)")->execute(21)'

Mais si vous avez une version trop ancienne de DBD::mysql, vous obtenez des résultats comme celui-ci :

DBD::mysql::st execute failed: PROCEDURE bonk.Foo can't return a result set in the given context at -e line 1.

Vous pouvez installer le dernier DBD en utilisant CPAN.