如何使用Powershell处理sql\u变体sql数据类型

如何使用Powershell处理sql\u变体sql数据类型,sql,powershell,ssis,sqldatatypes,sql-variant,Sql,Powershell,Ssis,Sqldatatypes,Sql Variant,我正在使用powershell执行一个存储过程,该存储过程有一个带有数据类型sql_变量的参数,并驻留在SSISDB(系统存储过程)中 由于sql_变量支持多数据类型,我将传递int、string和boolean数据类型 传递字符串数据类型时,存储过程执行正常。但不是int和boolean 程序名为 Catalog.Set\对象\参数\值 它有一个数据类型为SQL_变量的参数。下面是屏幕截图 当根据某些条件输入值时,我将得到int/string/bool数据类型 在使用Power shell输

我正在使用powershell执行一个存储过程,该存储过程有一个带有数据类型sql_变量的参数,并驻留在SSISDB(系统存储过程)中

由于sql_变量支持多数据类型,我将传递int、string和boolean数据类型

传递字符串数据类型时,存储过程执行正常。但不是int和boolean

程序名为

Catalog.Set\对象\参数\值

它有一个数据类型为SQL_变量的参数。下面是屏幕截图

当根据某些条件输入值时,我将得到int/string/bool数据类型

在使用Power shell输入之前,如何将这些值处理/转换为Sql_变量数据类型

目前,我的powershell命令如下

$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;

我在完全相同的SP上遇到完全相同的问题。请尝试以下方法:

$cmd.Parameters.AddWithValue("@parameter_value", $ParameterValue -As $ParameterValue.GetType().Name) | Out-Null;

我在完全相同的SP上遇到完全相同的问题。请尝试以下方法:

$cmd.Parameters.AddWithValue("@parameter_value", $ParameterValue -As $ParameterValue.GetType().Name) | Out-Null;

那么错误到底是什么呢?我想问题出在存储过程上,而不是powershell脚本上。你能不能用[string]$ParameterValue代替$ParameterValue?@marsze,因为它是系统存储过程,我不这么认为,这是存储过程的问题。@AdminOfThings-我收到了以下错误消息。使用“0”参数调用“ExecuteOnQuery”时出现异常:“输入值的数据类型与“Boolean”的数据类型不兼容。”“使用“0”参数调用“ExecuteOnQuery”时出现异常:“输入值的数据类型与“Boolean”的数据类型不兼容。”“使用“0”调用“ExecuteOnQuery”时出现异常”那么错误到底是什么呢?我想问题出在存储过程上,而不是powershell脚本上。你能不能用[string]$ParameterValue代替$ParameterValue?@marsze,因为它是系统存储过程,我不这么认为,这是存储过程的问题。@AdminOfThings-我收到了以下错误消息。使用“0”参数调用“ExecuteOnQuery”时出现异常:“输入值的数据类型与“Boolean”的数据类型不兼容。”“使用“0”参数调用“ExecuteOnQuery”时出现异常:“输入值的数据类型与“Boolean”的数据类型不兼容。”“使用“0”调用“ExecuteOnQuery”时出现异常”它不能处理布尔值。没错。最后,我使提供此信息的UI也具有参数类型的下拉列表。在PowerShell中处理SQL变体和正确猜测事物太混乱/不可能。它无法处理布尔值。这是真的。最后,我使提供此信息的UI也具有参数类型的下拉列表。在PowerShell中处理SQL变体并正确猜测事物太麻烦/不可能。