Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SSI将对象变量用于条件_Oracle_Ssis - Fatal编程技术网

Oracle SSI将对象变量用于条件

Oracle SSI将对象变量用于条件,oracle,ssis,Oracle,Ssis,我有一个执行sql任务,它将sql任务的结果分配到我的许多变量中,并带有一个结果集。只有当我使用对象类型作为变量类型时,它才起作用。然后,我想使用这些变量设置一个表达式约束。By ssis不允许这些操作使用对象类型变量。有没有办法解决这个问题?下面是我的sql语句: SELECT (SELECT COUNT(*) as s5 from random_table where rownum < 100) as S5, (SELECT COUNT(*) as s6 from random_Ta

我有一个执行sql任务,它将sql任务的结果分配到我的许多变量中,并带有一个结果集。只有当我使用对象类型作为变量类型时,它才起作用。然后,我想使用这些变量设置一个表达式约束。By ssis不允许这些操作使用对象类型变量。有没有办法解决这个问题?下面是我的sql语句:

SELECT (SELECT COUNT(*) as s5 from random_table where rownum < 100) as S5,
(SELECT COUNT(*)  as s6 from random_Table_2 where rownum < 100) as s6 from dual

谢谢

除非基本类型是Object,否则SSI中的数据类型不能更改。但是,对于Object类型的变量,您不能在表达式方面执行任何操作

然后,通用方法是使用Foreach枚举器分解结果集。对于该对象变量中的每一行,可以寻址各个列元素,并将这些元素分配到强类型变量中,然后在前置约束中使用这些强类型变量

对于这个问题,您可以更改当前正在填充Object类型变量的执行SQL任务。您提供的查询只返回1行数据和2列数据,但这是任意的。在这种特殊情况下,可以将执行SQL任务的结果集修改为SingleRow,而不是当前设置的None或Full。使用SingleRow属性集,您将不会将所有内容都转储到单个变量中,而是将强类型SSIS变量分配到特定列中

例子


我已经将我的属性设置为singleRow,然后在resultset选项卡中,我将我的参数(如s6)指定给单个变量,但它只接受对象类型变量。例如,我不知道如何将它们放入int变量中。您的变量是Object类型的。它总是会起作用的。您需要更改变量的数据类型,以与来自Oracle的类型(可能是Int32或Int64)保持一致