sql-server - 从 SQL Server 存储过程调用 Oracle 过程 - 尝试发送 UDTT 时出现错误“必须声明标量变量”
问题描述
我在 oracle 数据库中有一个名为 UpdateCase 的过程,我无法更改。其中一个参数是对象类型。我的目标是从 MSSQL 调用该存储过程。我们已经创建了链接服务器和一个用户定义的表类型,它反映了 oracle 数据库中的对象类型。这是调用过程的代码。
ALTER PROCEDURE [dbo].[spDMVUpdateCase]
@CaseNumber INT = NULL,
@User VARCHAR(50) = NULL
AS
DECLARE @ErrorMessage NVARCHAR(200)
DECLARE @ErrorSeverity INT
DECLARE @ErrorState INT
DECLARE @CaseRec AS CRASH.CaseSubType
BEGIN
EXECUTE('Call UpdateCase(?,?,?,?)',
@CaseRec,
@User,
@ErrorState,
@ErrorMessage) AT ALIS
END
当我尝试执行此代码时,我得到“必须声明标量变量“@CaseRec”。
有没有办法从 MSSQL 将非标量变量发送到 oracle 过程?
解决方案
推荐阅读
- vba - 使用输入标签访问 VBA 选择子表单记录更新
- mysql - Mysql通过前一个表列限制连接表结果
- linux - 码头工人。拨打 tcp 104.18.121.25:443:I/O 超时
- flutter - android Studio 4.2.1 上的 Flutter 项目没有数据库检查器、分析器和模拟器窗口
- android - 颤振:以编程方式选择启动器作为默认启动器
- c# - 将控件包装在堆栈面板中
- gojs - 如何使用 GoJs 绘制数据库架构拓扑图
- django - django sendgrid 发送电子邮件时出错
- bnf - 将 BNF 转换为 EBNF(Backus-Naur 形式到扩展的 Backus-Naur 形式)
- mongodb - 如何在 MongoDB 中检查字段是否持续增加