wghao
 
sp_split :
DELIMITER $$

CREATE DEFINER = \'test_user\'@\'%\'
PROCEDURE sp_split (IN p_str varchar(2000), IN p_split varchar(50), p_table_insert varchar(50), p_col_insert varchar(50))
BEGIN
  IF p_str > \'\' THEN
    WHILE (INSTR(p_str, p_split) <> 0) DO
      SET @value = SUBSTRING(p_str, 1, INSTR(p_str, p_split) - 1);
      SET @sql = CONCAT(\'INSERT \', p_table_insert, \'(\', p_col_insert, \') VALUES (?)\');
      PREPARE stmt FROM @sql;
      EXECUTE stmt USING @value;
      SET p_str = INSERT(p_str, 1, INSTR(p_str, p_split), \'\');
    END WHILE;
    SET @value = p_str;
    SET @sql = CONCAT(\'INSERT \', p_table_insert, \'(\', p_col_insert, \') VALUES (?)\');
    PREPARE stmt FROM @sql;
    EXECUTE stmt USING @value;
    DEALLOCATE PREPARE stmt;
  END IF;
END
$$

DELIMITER ;

 

 
e.g.
 
 
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_stock (stock_id int);
TRUNCATE TABLE tmp_ou;
  CALL sp_split(p_ouid_list,\',\',\'tmp_ou\',\'ou_id\');

 

 

分类:

技术点:

相关文章:

  • 2022-01-18
  • 2021-08-09
  • 2021-10-16
  • 2021-09-11
  • 2022-01-06
  • 2021-09-12
  • 2022-12-23
猜你喜欢
  • 2021-12-23
  • 2021-11-13
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案