1、SQLベースのストアドプロシージャ

図1に示すように、単純なストアドプロシージャ
定義:
ドロッププロシージャIFはf_misをEXISTS、
プロシージャf_misを作成し(IN p_masterId int型、IN p_serverId int型、IN p_attributeId int型、OUT p_mapKey VARCHAR(256)、OUT p_attributeValue VARCHAR(256))
BEGIN
  SELECT CONCAT(MasterId、 SERVERID、attributeId)、属性値p_mapKey` INTO `` p_attributeValue`は
  table_xxx FROM
  MasterId = SERVERID = `` p_masterId`とp_serverId`とattributeId = 'p_attributeId`とinstantId = '1800';
ENDの
注:VARCHAR(256)型マスト長さを指定し、それ以外の場合はエラー

コール:
コールf_mis(65,64,72、p_mapkey @、@ p_valueの);
SELECT p_mapkey @、@ p_valueの;
注:int型65,64,72を参照すると、単一引用符ではありません

図2は、合成列値ストアドプロシージャ
ドロッププロシージャIFはf_append_value EXISTS;
)(手順f_append_valueを作成
BEGIN
  -カーソルループにおけるフィールドの値を受信するため
  のDECLARE i_instant_id INTを、
  VARCHAR a_attribute_value DECLARE(1000)。

  -声明游标
  SELECT t.instantId、t.attributeValueのDeclare append_valueのCURSOR FROM table_xxxトン。

  -放棄が条件をサイクリング:レコードが見つからない場合は、カーソル終了
  DECLAREのEXIT HANDLERのためではないが、CLOSE append_valueを発見しました 。

  -戻り値は、プロシージャまたは演算結果格納された
  SETの@result =「」;

  -オープン光标
  OPEN append_value。

  -循环拼接字符串
  REPEAT
    append_value INTOをFETCHは、a_attribute_valueをi_instant_id。
      i_instant_id = 1800 THEN IF
        SET @result = CONCAT(結果@ a_attribute_value、 '---')。
      END IF;
  0 ENDのREPEAT UNTIL。

  -近い光标
  CLOSE append_value。
終わり

调用:
コールf_append_value();
@result選択します。

 

ストアドプロシージャ:
https://www.cnblogs.com/huaxingtianxia/p/5628828.html

レポート
手順カーソル保存
https://blog.csdn.net/datouniao1/article/details/81903738
https://blog.csdn.net/m0_37897502/article/details/80911727

おすすめ

転載: www.cnblogs.com/6xiong/p/12028542.html