Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/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
通过SSIS将数据插入带有序列列的Oracle表时出现问题_Oracle_Oracle11g_Ssis_Ssis 2012_Script Component - Fatal编程技术网

通过SSIS将数据插入带有序列列的Oracle表时出现问题

通过SSIS将数据插入带有序列列的Oracle表时出现问题,oracle,oracle11g,ssis,ssis-2012,script-component,Oracle,Oracle11g,Ssis,Ssis 2012,Script Component,我将数据插入到Oracle中的一个表中,该表在其中一列(如Id列)中设置了一个序列。我想知道如何将数据加载到这样的表中 我点击了下面的链接- 并尝试创建一个函数从Oracle表中获取.nextval,但我得到以下错误- 尝试检索错误ORA-01019的文本时出错 我意识到,通过包手动设置值,即通过使用脚本任务枚举值,但不增加序列,这导致了问题。我们如何处理它?有什么链接可以帮我解决吗 我正在使用SSIS-2014,但由于信誉点不足,我无法对其进行标记。ORA-01019可能与您安装了多个Ora

我将数据插入到Oracle中的一个表中,该表在其中一列(如Id列)中设置了一个序列。我想知道如何将数据加载到这样的表中

我点击了下面的链接-

并尝试创建一个函数从Oracle表中获取.nextval,但我得到以下错误-

尝试检索错误ORA-01019的文本时出错

我意识到,通过包手动设置值,即通过使用脚本任务枚举值,但不增加序列,这导致了问题。我们如何处理它?有什么链接可以帮我解决吗


我正在使用SSIS-2014,但由于信誉点不足,我无法对其进行标记。

ORA-01019
可能与您安装了多个Oracle客户端有关。如果仅包含一个客户端,请检查
ORACLE\u HOME
变量

我考虑的一个解决方法是创建两个处理序列的过程。一个从您开始获得价值的方法:

create or replace function get_first from seq as return number
seqid number;
begin
select seq_name.nexval into seqid from dual;
return seqid;
end;
/
然后在脚本中进行增量。然后调用第二个过程来递增序列:

create or replace procedure setseq(val number) as
begin 
execute immediate 'ALTER SEQUENCE seq_name INCREMENT BY ' || val;
end;
/

这不是一个好方法,但可能会解决您的问题

我创建了一个解决方案来解决这个问题。我已经创建了目标的暂存表,但没有采用序列Id的列。插入数据后,我将调用SQL语句,从暂存表并使用.nextval函数将数据获取到主表中。最后,根据需要截断/删除表。了解如何通过脚本处理同样的事情,而不是使用这种变通方法,仍然是一件有趣的事情

例如下面这样的例子-

insert into table_main
select table_main_sequence_name.nextval
,*
from (
select *
from table_stg
)

系统变量中不存在ORACLE_HOME变量。我用客户端路径添加了它,但仍然面临相同的错误。现在,我将在脚本中指定连接字符串,并将其视为密码。@VKarthik我对ORA错误没有更多的想法。但是发布了一个可能有助于您了解更新和解决方法的解决方案。我遇到的问题是,由于这个错误,在脚本组件中完成了任何数据库调用,所以我认为我不能这样做。我想出了下面列出的另一种方法