sql >> Database >  >> RDS >> Mysql

Hoe roep ik MySQL-opgeslagen procedures van Perl aan?

Op MySQL opgeslagen procedures die datasets produceren, vereisen dat u Perl DBD::mysql 4.001 of hoger gebruikt. (http://www.perlmonks.org/?node_id=609098 )

Hieronder vindt u een testprogramma dat zal werken in de nieuwere versie:

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)'

Maar als je een te oude versie van DBD::mysql hebt, krijg je de volgende resultaten:

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

U kunt de nieuwste DBD installeren met CPAN.



  1. Een offline app voor internationalisering maken:gebruik Sqlite-database

  2. Alternatieven voor LIMIT en OFFSET voor paging in Oracle

  3. Voorloop- en/of volgspaties van een tekenreeks verwijderen in T-SQL

  4. JDBC versus webservice voor Android