首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Server 2000调用MySQL存储过程?

如何从Server 2000调用MySQL存储过程?
EN

Stack Overflow用户
提问于 2009-08-19 21:24:59
回答 2查看 2.8K关注 0票数 0

我有两个数据库,一个MySQL 5,一个Server 2000。我已经将MySQL数据库映射为MySQL数据库中的链接服务器。我想从MySQL数据库调用保存在MySQL数据库中的存储过程。正确的语法是什么?在Server 2000中是否可能出现这种情况?

编辑:

我试过了

代码语言:javascript
复制
EXEC webpush...clear_tables

但我只是拿回这个:

代码语言:javascript
复制
Could not execute procedure 'clear_tables' on remote server 'webpush'.
[OLE/DB provider returned message: [MySQL][ODBC 3.51 Driver]
[mysqld-5.0.46-enterprise-gpl-log]You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version for the 
right syntax to use near '?=call "clear_tables";1' at line 1]

即使我填写DB名称和所有者,我仍然得到同样的东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-22 00:56:05

我想做一些类似的事情,所以即使这已经过时了,我还是想给其他搜索者发个回复。我无法找到通过“.”运行存储过程的方法。表示法,但这很好

下面是MySQL中存储的proc,用于更新给定id的数据库xxx测试表中记录的条形码字段:

定界器$$

如果存在xxx.STP_products_Update_barcode$$创建DEFINER=root@localhost过程xxx.STP_products_Update_barcode(IN INT,in xbarcode varchar(25))开始更新测试集条形码= xbarcode

其中id = xid;END $$

划界者;

这是Server中运行它的一个过程(我通常会尝试捕获块和其他错误捕获,但是对于clarity.Note来说,MYSQL_XXX是一个从server到MySQL设置的链接服务器)。

创建过程dbo.[STP_XXX_MySQLBarcode_Update]

@product_id int,@条形码varchar(20)作为开始设置NOCOUNT对声明@SQL (1000)

SET @SQL = 'CALL STP_products_Update_barcode(' + CAST(@Product_id as varchar) + ','''+ @barcode +''')' EXEC (@SQL) AT MYSQL_XXX SET NOCOUNT OFF END GO

这里还没有格式化代码的窍门,现在有点仓促,但是你知道.

票数 0
EN

Stack Overflow用户

发布于 2009-08-19 21:47:01

我还没有以这种方式使用链接服务器,但您不能使用链接server.database.owner.procedure语法使用exec调用吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1302695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档