stored-procedures - 在 sql 中执行 SP 时为 Readonly 数据类型传递数据
问题描述
我需要在 Sql Server 中执行一个 SP。我使用外部脚本执行 SP,如下所示。
Declare @partid int
Declare @Quantity float
Declare @unitCost float
Exec PRAMA.ins_parts @partid ,5,@Quantity ,@unitCost,'Adjusting balance' ,null
在 PRAMA.ins_parts SP 中,
Create PROCEDURE [ins_parts]
@part_id as int
, @act as int
, @qty as float
, @cost as float
, @comment as nvarchar(500)
, @codes product_codes READONLY
AS
BEGIN
END
然后,当我执行上述查询并将数据传递给 SP 时,它会显示一条错误消息“操作数类型冲突:NULL 与代码不兼容”
有没有办法解决这个问题?任何人都可以建议我一个解决方案吗?
解决方案
我找到了上述问题的解决方案。
首先,您必须在查询中声明表类型参数,然后向其中插入数据。在我的“product_codes”表中,它有 id (int) 和 code (varchar) 列。
Declare @product_codes Parts_Product_Codes
Declare @partid int
Declare @Quantity float
Declare @unitCost float
Insert into @product_codes Values(null,null)
Exec PRAMA.ins_parts @partid ,5,@Quantity ,@unitCost,'Adjusting balance' ,@product_codes
推荐阅读
- mysql - 如何有效地查询 MySQL 中特定日期范围之间的行?
- reactjs - 反应管理员!如果收到 API 错误,则应重定向到登录页面
- spring - Spring Eureka 拒绝来自尝试发现 Spring Config 服务器的服务的连接
- azure-data-explorer - 在 kusto 中格式化结果
- laravel - laravel-mix / webpack,忽略要导出的 sass 加载文件(字体)
- node.js - 使用 Node 和 MySQL 的 PassportJS JWT 策略不起作用
- php - 从 laravel 刀片文件中调用函数的最佳方法
- indy10 - Embarcadero RAD 工作室和印地。错误消息“包大小太大”
- css - 表格的垂直拉伸,不移动其内容
- swiftui - SwiftUI ScrollView 中包装的非滚动 UITextView 的内在高度