【发布时间】:2011-07-28 21:31:45
【问题描述】:
参考How to execute an Oracle stored procedure via a database link,它在我的情况下不起作用。我不知道我错过了什么。
我在同一台计算机上有一个 SQL Server 实例和 Oracle 数据库。并在Oracle中创建数据库链接,名为ss。
并且在 SQL Server 中有一个存储过程叫做dbo.test_proc
create proc dbo.test_proc
as
print 'testing';
显然,它没有参数,也没有返回值。
我尝试通过数据库链接调用 Oracle 中的存储过程。但没有以下工作。
exec test_proc@ss;
exec "test_proc"@ss;
exec "dbo"."test_proc"@ss;
exec "dbo.test_proc"@ss;
exec "dbo..test_proc"@ss;
错误是这样的
PLS-00201: identifier 'test_proc@SS' must be declared
ORA-06550: line 1, column 7:
有什么可以帮助我的吗?我已经尝试了很长时间。谢谢!
上传图片用于查询sys.procedures以检查SQL Server中存储过程的存在并尝试通过数据库链接运行存储过程。
Image
【问题讨论】:
-
尝试将您的 TSQL 存储过程更改为
CREATE PROCEDURE dbo.test_proc AS BEGIN SELECT 'testing' END。 -
虽然我更改了存储过程,但仍然出现同样的错误。
-
你是如何定义你的链接的——你能发布你使用的 CREATE DATABASE LINK 命令吗?能否从 Oracle 数据库中对 SQL Server 数据库中的表发出简单的 select 语句并使其成功?
-
是的。数据库链接工作正常。我可以做
select * from INFORMATION_SCHEMA.TABLES@ss。我刚刚为结果上传了一张图片。谢谢! -
您是否也尝试过
exec dbo.test_proc@ss;?
标签: oracle sql-server-2008 dblink