2

MySQL関数があります。この関数内では、実行時に変数の値を出力したいと考えています。

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION
  `updateCompanyName`(companyName varchar(200)) RETURNS varchar(200)
  CHARSET latin1 BEGIN

  declare modifiedCompanyName varchar(200); 
  DECLARE keywordToRemove varchar(200); 

  DECLARE cur1 CURSOR FOR SELECT name FROM company_remove_keywords;

  select regex_replace('[^a-zA-Z 0-9]', "",companyName) into modifiedCompanyName;

  OPEN cur1;  
    read_loop: LOOP
      FETCH cur1 INTO keywordToRemove;
      select keywordToRemove;

      select replace_ci(modifiedCompanyName,
             concat(" ",keywordToRemove," ")," ") 
             into modifiedCompanyName;
      select replace_ci(modifiedCompanyName,
             concat(" ",keywordToRemove),"")
             into modifiedCompanyName;
    END LOOP;

  CLOSE cur1; 
  return modifiedCompanyName; 
END

値を印刷する最良の方法は何ですか:keywordToRemovemodifiedCompanyName?

4

1 に答える 1

2

デバッグ情報を格納するテーブル (または一時テーブル) を作成し、必要な値をこのテーブルに挿入できます。

また、GUI ツールDebugger for MySQL (試用版をお試しください)を使用して、ストアド プロシージャ/関数/トリガーを簡単にデバッグできます。

于 2013-01-15T13:16:15.027 に答える