sql >> データベース >  >> RDS >> Mysql

PerlからMySQLストアドプロシージャを呼び出すにはどうすればよいですか?

    データセットを生成するMySQLストアドプロシージャでは、Perl DBD ::mysql4.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.
    

    CPANを使用して最新のDBDをインストールできます。



    1. SQLでN番目に大きい要素を見つける

    2. mySqlを使用して残りの日、時間、分を取得します

    3. MSSQLServerでのデータベーススキーマ変更の自動データ収集

    4. 最後に挿入された行IDを取得します(SQLステートメントを使用)