sql >> Databasteknik >  >> RDS >> Mysql

Hur ringer jag upp MySQL-lagrade procedurer från Perl?

MySQL-lagrade procedurer som producerar datauppsättningar kräver att du använder Perl DBD::mysql 4.001 eller senare. (http://www.perlmonks.org/?node_id=609098 )

Nedan finns ett testprogram som kommer att fungera i den nyare versionen:

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

Men om du har en för gammal version av DBD::mysql får du resultat så här:

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

Du kan installera den senaste DBD med CPAN.



  1. Optimering av MySQL-sökning med hjälp av like och jokertecken

  2. Hur man installerar Neo4j på Ubuntu 20.04

  3. Hur parallella planer startar – del 1

  4. Villkorlig lead/lag-funktion PostgreSQL?