• 締切済み

トリガー内でperlモジュールを呼び出したい!

mysql5.0.27で、テーブルにinsertしたデータ(文字列)をperlモジュールで変換し、変換後の文字列を別のテーブルにinsertしたいのですが、方法がわかりません。 perlを使いたいのは、すでにモジュールがあるということと、他の言語では文字列変換が面倒という理由です。 perlが呼び出せないのなら、Cとかで作り直してもいいのですが、まずはperlの呼び出し方を教えてください。それができなければ、Cでも構いません。 できそう/できないだけでもご存知でしたら教えてください。

  • aneja
  • お礼率93% (379/405)
  • MySQL
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

MySQLのトリガ、ストアドプロシジャ&ファンクションは、標準SQL準拠であり、現在は他の言語で書かれたプロシジャを呼ぶことはできません。 ただ、同じくトリガ、ストアドプロシジャ&ファンクションを標準SQL準拠で開発が進んでいるDB2 UDBでは、CやJAVAで書いたプロシジャを呼べる機能を実装しているので、今後、MySQLでも同様の機能が実装されるかも知れません。

aneja
質問者

お礼

お礼が大変遅くなって、どうもすみませんでした。現状は、できないのですね。実装を工夫してみます。どうもありがとうございました。

関連するQ&A

  • perlのDBIモジュールからmysqlへデータを送ったら文字化けします。

    こんにちは。 タイトル通り、perlのDBIモジュールからデータベース(mysql)にデータを渡してみたのですが(INSERT INTOです。)phpmyadminというDB管理ツールでテーブルの内容を見てみると、文字化けしてました。 フォームより受け取った値(文字列です。もっというと名前)をCGIでデータベースへ追加するといったことをしています。ソースは以下のとうりです。 require 'cgi-lib.pl'; my %formin; &ReadParse(\%formin); $sei=$formin{'sei'}; $mei=$formin{'mei'}; あとはこの変数をDBIでデータベースに渡すだけなので略します。 データベースへデータを渡したとき、文字化けさせないためには、どうしたらいいのでしょうか? 初歩的なことかもしれませんが、どうかお力を貸してください。お願いします。

    • ベストアンサー
    • MySQL
  • 初心者なんですが、モジュールが良くわからなくて,,,

    c言語で文字列のハッシュモジュールを作ることになったんですが、そもそもモジュールの知識がほぼないのでどう書けばいいか、よくわかりません。 例えば、文字列の配列が渡されてハッシュを作るのですが、そもそもそこらへんの渡し方をどのように書けばいいのかもわかりません。誰かわかりやすく教えてください。

  • Perlでさらに気の利いた文字列処理モジュールはありますか?

    Perlで2つの文字列を比較して、違いが見つかった以降の文字列を取得するような さらに文字列処理に便利なモジュールを探しております。

    • ベストアンサー
    • Perl
  • 「置くだけ」で使えるperlモジュールに関する情報は?

    perlモジュールをインストールしたいとき、CPANモジュールを使えば手軽に可能ですが、サーバーによってはGCC(コンパイラ)が使えない場合があります。シェル自体が使えないこともあります。 そんなときは、とりあえずダメモトで手動での展開・配置を試みます。 たとえばDate::Simpleなどはこれで問題ないですが、当然、バージョンの整合性や環境に依存するものなどもあり、動かなければ、モジュールの中身やmakeファイルなど調べたり、…などなどすることがあります。 しかし、そもそもモジュールは中身なんて知る必要がないのが利点でもあって、それこそ手軽に機能を使いたいからこそなのに、…などと作業しながら釈然としない気持ちになります。 そこでお聞きしたいのですが、コンパイルしなくても動くかどうかを知る方法、あるいはその情報、どこかに公開されているモジュール別の一覧など、そういうものをご存知ではないでしょうか。 この思いは私だけではない気がするのですが…、皆さんどうなのでしょう。

    • ベストアンサー
    • Perl
  • UNICODEなPerl

    なんかいつもしょうもない質問ばっかで申し訳ないのですが、UNICODEで書いたソースコードを実行してくれるPerlってないですか? できればWINで。 文字列をUNICODEに変換できるモジュールとかじゃなくて、たとえばリテラル文字列のなかにユニコード依存なハートマークとか入れられたり、glob関数がファイルリストをUNICODEで受け取れたりと。

  • PerlやApacheで各キャリアの絵文字を自動認識するモジュールを探

    PerlやApacheで各キャリアの絵文字を自動認識するモジュールを探しています。 printするモジュールはあるみたいなのですが、formタグなどから打ち込まれた絵文字を自動認識してutf8なりsjisに変換して受け取るモジュールが分からなくて困っています。 現在考えうるのはとりあえずformで放り込まれたものをbainaryで受け取って全てマッチングさせるという方法ですが、やはりモジュールで高速したいと考えています。 そのようなモジュールや方法をご存じの方がいればURLだけでも結構なので教えていただ生きたいです。

    • ベストアンサー
    • Perl
  • 純Perl製のXMLパーサーはありませんか

    horagaiです。お世話になっております。 PerlでXMLファイルを処理する必要があり、Perlで使えるXMLパーサーを探してみたところ、XMLParserというそのものずばりの名前のモジュールがあることがわかりました。 しかし、これはXMLパーサー本体ではなく、expatというC言語で書かれたXMLパーサーを利用するためのインターフェイスらしいです。それに私は無料ホームページスペースで使いたいので、コンパイルの必要なモジュールは利用できません。 Perlだけで使える(expatのようなPerl以外で書かれた非標準的外部プログラムを必要としない)XML処理用のライブラリー(モジュールではなくパッケージ)をご存知ないでしょうか。 出来れば日本語も処理できる(それもUnicodeだけでなくEUC-JPやShift-JISのファイルも)ようなものが望ましいです。 Perlはテキスト処理が得意なので、Perlで書かれたXMLパーサーは当然あると思っていたのですがどうも見つかりません。 なお利用目的としてはデータ構造を取り出すと言うよりも単にXMLデータをHTMLに直したいだけなので、別にXMLパーサーでなくてもそのような目的に使えるようなパッケージであればそれでも構いません。 なおCPANも一応はチェックして見ましたが見つかりませんでした。(もちろん見落としはあるかも知れませんが) よろしくお願いします。

    • 締切済み
    • XML
  • textareaタグに入力された改行コードの扱い

    PHPとMySQLを利用して簡単なWEBアプリを作っています。 <textarea>内に入力された文字列をMySQLにINSERTする際、使用しているブラウザによって改行コードの文字数が異なるため、MySQLにINSERTされる文字数が異なってしまいます。具体的にいうと、 --MySQL仕様-- <textarea>内のデータを、MySQLのとあるtableにINSERTする。 そのtableの<textarea>のデータを登録するcolumnにvarchar(1000)を指定している。 --PHP仕様-- <textarea>内のデータをPOSTより受け取り、其の生データを上記設定したcolumnにINSERTする。 (文字数チェックの際、\r\nを\nに変換し、改行コードを1文字として解釈させ、カウントしている。) そのデータを訪問者が閲覧できるようにpreg_replaceで改行コードを<br />に変換し表示している。 INSERTされたデータは再編集できるよう、編集ページを設けている。 ◆問題 ブラウザごとで<textarea>内の改行コードが異なるため、文字数カウントの際、\n、\r、\r\nによって文字数にズレが生じてしまい、その結果varchar(1000)で設定したcolumnでは使用したブラウザによってINSERT可能な文字数が異なってしまう。 ◆質問 ブラウザによって出力される改行コードが異なるため、MySQLのtableにINSERTされる文字数が異なってしまいます。改行コードを1文字と解釈し、ブラウザによる差異をなくす良い方法はありませんか? --自身で考えた方法-- ・varchar(1000)を例えばvarchar(1200)などとし、PHP側のみで文字数の制限を掛ける。 ・一部のサイトでは\r\nを\nに変換し、INSERTするって方法が記載ありました。この方法を選択すると、再編集のページでブラウザを判別し、\nを\r\nに変換する手間があるので仕様変更に手間がかかりそう。 以上となります。独学の自分には「自身で考えた方法」しか思い浮かばず、MySQLに登録する際、ブラウザによる改行コードの文字数の差異の良い方法が浮かびませんでした。何か良い方法をご教授いただけませんでしょうか?宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Perlモジュールを使わずにsha256変換を使う方法

    下記のPHPと同じ結果をPerlで出したいです。 ■PHPデータ <?php // HMAC-SHA256 $hash = hash_hmac('sha256', hogedata, hogekey, 'true'); // BASE64エンコード print base64_encode($hash); ?> 検索エンジンで調べたところ、 「Digest::SHA256」などのPerlモジュールを使用すれば可能なようですが、 新しいPerlモジュールをインストールする権限のないため、 直接、Perlに式を記述したいと思いました。 ■Perlデータ(途中) #!/usr/bin/perl use MIME::Base64; print "Content-type: text/html\n\n"; # HMAC-SHA256 ~ここに変換式が入ります~ # BASE64エンコード $enhash = encode_base64($hash); print "$enhash"; PHPで書き直せば同じサイトを作ることは可能ですが、 できればPerlのままで継続したいです。 お分かりの方がいらっしゃいましたら、 ご教授いただけますでしょうか。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • seleniumでperlモジュール使用で質問です。

    seleniumでperlモジュール使用で質問です。 ------------------------ type ロケータ 値 ------------------------ selenium IDEで短い文字列なら入力できますが、 selenium IDEであれば長くても一行で大きな ファイルデータを並べればうまく動作しました。 そこでseleniumのperlクライアントモジュールで、 undef $/; open(IN2,'test.html'); $vv2 = <IN2>; close(IN2); $sel->type_ok("Description_plain", "$v"); という感じでHTMLファイルデータを、 一気にテキストエリアに流し込む場合、 読み込む文字数が多くなるとエラーになります。 ヴァージョンはselenium RC 1.0.1です。 WARN - null /selenium-server/driver/?cmd=waitForPageToLoad&1=5000&s essionId=f5b37a23daa64c79b6fb1202a1413f33 HTTP/1.1 HttpException(414,Request URI Too Large,null) ちなみにHTMLのデーターを600biteくらいでエラーになりません。 エラーを読む限り、Request URIが長すぎる、との事ですが、 たかだか600bite程度でこんなエラーが出ては、 ユーザーのテキストエリアへの長文投稿 などのシュミレーションができないと思います。 もし、解決方法やヒントを知っている方はご教授お願いします。

    • ベストアンサー
    • Perl