从MS SQL Server调用需要longblob / varbinarymax参数的MySQL存储过程

问题描述

我正在尝试通过链接服务器从MS sql Server调用MysqL存储过程。 MysqL存储过程将插入包含longblob的记录(从MS sql Server作为VARBINARY(Max)传入。我不确定我的@myFile参数周围的引号是否正确。这是我从sql Server端:

sql Server代码

EXEC('CALL InsertFiletest('+@ID+',"'+ @myName +'",'''+@myLocation+''',"'+ **@myFile** +'",' + '''2020-10-15 00:00:000''' +');') AT FILEX

我尝试在参数周围不使用引号,单引号,双引号并且没有运气,是否可以像这样传递VARBINARY(MAX)参数? `

DECLARE @ID INTEGER,@myName VARCHAR(200),@myLocation VARCHAR(200),@myFile VARBINARY(MAX),@insertDate datetime 
DECLARE file_cursor CURSOR FOR 
SELECT
   fileID,CAST(name AS VARCHAR(200)),CAST(location AS VARCHAR(200)),CAST([file] AS VARBINARY(MAX)) 
FROM
   cis_file 
WHERE
   fileid in
   (
      65502
   )
   --,65115,65116)
   OPEN file_cursor;
FETCH NEXT 
FROM
   file_cursor INTO @ID,@myName,@myLocation,@myFile WHILE @@FETCH_STATUS = 0 
   BEGIN
      EXEC('CALL InsertFiletest(' + @ID + ',"' + @myName + '","' + @myLocation + '","' + @myFile + '");') AT FILEX;
FETCH NEXT 
FROM
   file_cursor INTO @ID,@myFile 
   END
;
CLOSE file_cursor;
DEALLOCATE file_cursor;

}

MysqL存储过程

CREATE DEFINER=`ASIMysqLADMIN`@`%` PROCEDURE `InsertFiletest`(
        IN fileID int,IN name VARCHAR(200),IN location VARCHAR(200),IN file longblob

)
BEGIN
    INSERT INTO CIS_FILEX (name,location,file,fileID) VALUES ( name,fileID);
END

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)