Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да извикам MySQL съхранени процедури от Perl?

Съхранените процедури на MySQL, които произвеждат набори от данни, трябва да използвате Perl DBD::mysql 4.001 или по-нова версия. (http://www.perlmonks.org/?node_id=609098 )

По-долу е дадена тестова програма, която ще работи в по-новата версия:

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

Но ако имате твърде стара версия на DBD::mysql, получавате резултати като този:

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

Можете да инсталирате най-новия DBD, като използвате CPAN.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъпът е отказан за 'user'@'localhost'

  2. коя заявка е по-добра и ефективна - mysql

  3. Изпълнете SQL заявка при стартиране на услугата MySQL

  4. Създайте функция чрез MySQLdb

  5. Най-бързият начин да проверите за съществуващ запис преди вмъкване [mysql_errno()]