我正在使用Power Shell执行其中一个存储过程,该存储过程具有数据类型为sql_Variant的参数之一,并驻留在SSISDB(系统存储过程)中
由于sql_variant支持多种数据类型,因此我正在传递int,string和boolean数据类型。
传递字符串数据类型时,存储过程执行良好。但不是int和boolean。
过程名称为
Catalog.Set_Object_Parameter_Value
它具有一个参数,数据类型为SQL_Variant。下面是屏幕截图。
基于某些条件输入值时,我将获得int / string / bool数据类型。
在使用Power-shell输入之前,如何将这些值处理/转换为Sql_Variant数据类型。
目前,我的power-shell命令如下所示。
$procSignature = "EXEC [catalog].[set_object_parameter_value] @object_type,@folder_name,@project_name,@parameter_name,@parameter_value,@object_name";
$cmd = New-Object System.Data.SqlClient.SqlCommand;
$cmd.Connection = $catalogConnection;
$cmd.CommandText = $procSignature;
$cmd.Parameters.AddWithValue("@object_type", $Scope ) | Out-Null;
$cmd.Parameters.AddWithValue("@folder_name", $FolderName ) | Out-Null;
$cmd.Parameters.AddWithValue("@project_name", $ProjectName ) | Out-Null;
$cmd.Parameters.AddWithValue("@parameter_name", $ParmeterName ) | Out-Null;
$cmd.Parameters.AddWithValue("@parameter_value", $ParmeterValue ) | Out-Null;
$cmd.Parameters.AddWithValue("@object_name", $object ) | Out-Null;
答案 0 :(得分:0)
我在使用完全相同的SP时遇到了完全相同的问题。试试这个:
$cmd.Parameters.AddWithValue("@parameter_value", $ParameterValue -As $ParameterValue.GetType().Name) | Out-Null;