当前位置: 首页 > 知识库问答 >
问题:

数据流任务未从oracle db更新SQL Server表

司寇瑾瑜
2023-03-14

“我的sql编辑器”任务使用“sql from a variable”选项,该选项在代码中包含最后一次运行日期变量(变量lastRundate,该变量应查看sql server表中的字段,显示包上次成功运行的日期)。使用此日期,它应该将在此日期之后输入的Oracle db数据拉到SQL Server表中。sql编辑器任务运行良好;但是,当随后调用数据流时,OLE DB源错误输出

[OLE DB源[1]]错误:SSIS错误代码DTS_E_OLEDBERROR。
发生OLE DB错误。
错误代码:0x80040E14。OLE DB记录可用。
源:“Microsoft OLE DB Provider for Oracle”HRESULT:0x80040E14
说明:“ORA-00923:在所需位置未找到FROM关键字”。

我设置得不恰当的地方是什么?

在SQL编辑器任务的SQL语句中:

declare @lastRunDate datetime, @lastRunDate_AsString varchar(30), 
        @sqlScript varchar(1000);

set @lastRunDate = (SELECT LastSuccessRunDate 
                    FROM dbo.LastSuccessRunDate 
                    WHERE PackageName = 'V_M_E')

set @lastRunDate_AsString = (SELECT 
                                convert(varchar(20), @lastRunDate, 101) + '
                              ' + substring(convert(varchar(20), @lastRunDate, 9), 13, 5) + substring(convert(varchar(30), @lastRunDate, 9), 25, 2)
currentdate_time)

set @sqlScript = 'SELECT ep.member_id AS MEMBER_ID,  ep.NAME_FIRST AS
                  NAME_FIRST, ep.NAME_LAST AS NAME_LAST, ep.ADDRESS1 AS ADDRESS1, 
                  ep.ADDRESS2 AS ADDRESS2, ep.ZIP AS ZIP, ep.CITY AS CITY, ep.STATE
                  AS STATE, to_date(ep.BIRTH_DATE, ''MM/DD/YYYY'') AS BIRTH_DATE, 
                  ep.GENDER AS GENDER,  '''' AS RACE ,  '''' AS "LANGUAGE",  
                  nc.NAME_FIRST  || '' '' || nc.NAME_LAST AS EMER_CONTACT,  ep.plan AS
                  "LOB", al.affiliation_secondary AS PLAN_DESC, to_date(ep.end_date,
                  ''MM/DD/YYYY'') AS EXP_COVERAGE_DATE, ''RECIPIENT''  AS "TYPE"  
                  FROM
                       scb.ep_view ep,   SCB.N_C NC,  scb.name,  scb.afflib al 
                  WHERE
                       al.affiliation_id = sc_base.name.text3 AND sc_base.name.name_id =
nc.name_id AND nc.name_id  = ep.name_id AND
(to_date(ep.addr_update_date,''mm/dd/yyyy'') > to_date(''' +
@lastRunDate_AsString + ''', ''mm/dd/yyyy hh:miam'') OR
to_date(ep.plan_update_date,''mm/dd/yyyy'') > to_date(''' +
@lastRunDate_AsString + ''', ''mm/dd/yyyy hh:miam'')) UNION SELECT
hf.member_id AS MEMBER_ID,  hf.NAME_FIRST AS NAME_FIRST,  hf.NAME_LAST
AS NAME_LAST,  hf.ADDRESS1 AS ADDRESS1,  hf.ADDRESS2 AS ADDRESS2, 
 hf.ZIP AS ZIP,  hf.CITY AS CITY,  hf.STATE AS STATE,
to_date(hf.BIRTH_DATE, ''MM/DD/YYYY'') AS BIRTH_DATE,  hf.GENDER AS
GENDER,  '''' AS RACE ,  '''' AS "LANGUAGE",   nc.NAME_FIRST  || '' ''
|| nc.NAME_LAST AS EMER_CONTACT,  hf.plan AS "LOB",
al.affiliation_secondary AS PLAN_DESC, TO_DATE(hf.end_date,
''MM/DD/YYYY'') AS EXP_COVERAGE_DATE, ''RECIPIENT''  AS "TYPE" FROM
scb.hf_view hf,   SCB.N_C NC,  scb.name,  scb.afflib al WHERE
al.affiliation_id = sc_base.name.text3 AND sc_base.name.name_id  =
nc.name_id AND nc.name_id  = hf.name_id AND
(to_date(hf.addr_update_date,''mm/dd/yyyy'') > to_date(''' +
 @lastRunDate_AsString + ''', ''mm/dd/yyyy hh:miam'') OR
to_date(hf.plan_update_date,''mm/dd/yyyy'')  >  to_date(''' +
@lastRunDate_AsString + ''', ''mm/dd/yyyy hh:miam''))'

select @sqlScript as SQLSU

共有1个答案

邴宏大
2023-03-14

动态sql中Union中的第二个sql中缺少FROM子句。

这是因为当您动态创建sql语句时,您的文本将在1000个字符处被截断。

使用nvarchar(1000)代替varchar(1000)

 类似资料:
  • 一个小背景:我的主要活动时,“在简历上”连接到我的服务器要求信息。这是正确的。当活动接收到答案时,它将数据加载到数组上,在加载完数组后,它调用位于主活动上的“updateFragments”。在这儿... DataManager类是:构造函数: 异步任务调用以下命令:

  • 我想知道ehcache是否有办法检测数据库更新/插入(spring/java,hibernate web应用程序),并使用数据库中的当前(最新)数据刷新其缓存。如果没有,检测数据库更新的最佳方法是什么,以保持与缓存和数据库之间的数据同步?

  • 我的xhtml中有下一个结构 方法searchAnimals()可以,它返回动物项,但dataTable不刷新,但在java代码(managedBean)中,ArrayList包含这些项。我能做什么?谢谢编辑:我正确地使用了de h:和p:后缀(我想是的),代码是完整代码的一部分,但它是无法正确工作的片段。在第一个面板中,我有一个过滤器控件(按类别、按日期等),命令按钮的功能是调用一个在数据库上执

  • 我使用RecycerView使用游标显示sqlite数据库中的数据,当我从数据库中删除一项时,该项将被删除,但我的RecycerView视图不会刷新。 我必须回到我的主要活动,然后数据被刷新。我已经使用了notifyItemRemoved()和notifyDataSetChanged()

  • 嗨,我有一个充满产品的数据库,我需要安排一个rake任务运行每周。我不太确定如何编写rake任务。例如,我有一个id=1name=“testname”description=“description”sku=“198”price=12.99的产品,我需要上传一个带有name=“testname”的csv,并将价格更新为13.99,同时保持id不变。这是我尝试到目前为止,但它不是完整的,如果有人能帮

  • 我试图了解运行批处理任务时通过Spring Cloud数据流WRT数据源配置的预期行为。 Spring批处理数据库表(Batch\u JOB\u EXECUTION等)是否在SCDF数据库本身中?当通过SCDF启动任务时,似乎发生了一些神奇的事情,它在SCDF数据库中创建了这些表,并似乎在使用它们。它似乎正在将SCDF数据源注入我的应用程序? 我目前在localhost服务器版本2.0.1上运行。