小编Bas*_*Boy的帖子

SSIS连接管理器登录失败

我有一个SSIS项目,其中我定义了一个数据源(提供程序:用于SQL Server的本机OLE DB/Microsoft OLE DB提供程序).当我手动打开它并按下"测试连接"按钮时,一切正常.连接管理器可以使用连接字符串,用户和密码访问数据库.

现在我有一个SSIS包,我根据这个数据源创建了一个连接管理器("来自数据源的新连接......").

在包控制流程中,我有一个SQL任务,它具有连接类型OLE DB,并且在此包中将连接设置为我的连接管理器.该任务向数据库发出一些更新语句,完全没有意义.

现在,当我调试整个事情时,我总是得到同样的错误:

错误:SSIS错误代码DTS_E_OLEDBERROR.发生OLE DB错误.错误代码:0x80040E4D.OLE DB记录可用.来源:"用于SQL Server的Microsoft OLE DB提供程序"Hresult:0x80040E4D描述:"用户'myUser'登录失败."

仅供参考:myUser等于我的数据库用户名.

所以我的问题是:我在这里缺少什么?我真的看不出这里有什么问题.我真的被困在这里了.任何提示非常感谢!

database ssis

9
推荐指数
1
解决办法
4万
查看次数

查找每组最大值并返回另一列

给出以下测试矩阵:

testMatrix <- matrix( c(1,1,2,10,20,30,300,100,200,"A","B","C"), 3, 4)

colnames(testMatrix) <- c("GroupID", "ElementID", "Value", "Name")
Run Code Online (Sandbox Code Playgroud)

在这里,我想找到每组的最大值,然后返回该列的名称.例如,我希望1,A和2,C.如果与max有关系,那么第一场比赛就没问题了.之后,我将不得不使用新的列"GroupName"将其附加到矩阵

我怎样才能做到这一点?

我已经拥有Group,Max Value组合:

groupMax <- aggregate (as.numeric(testMatrix[,3]), by=list( testMatrix[,1] ), max )
Run Code Online (Sandbox Code Playgroud)

我用来向我的矩阵添加列的方式就像这样(让我们假设还有一个矩阵groupNames,GroupID,Name组合):

testMatrix <- cbind ( testMatrix, groupNames[match( testMatrix[,1], groupNames[,1] ), 2] ) 
Run Code Online (Sandbox Code Playgroud)

r matrix greatest-n-per-group

7
推荐指数
2
解决办法
5162
查看次数

Oracle奇怪的SUM行为

我有两个问题,根据我的理解,应该提供相同的结果,但事实并非如此.很明显,我在这里遗漏了一些重要的观点,我希望你能帮助我.

  1. 查询(我认为这是错误的):

      SELECT SUM(a.amount) AS A_SUM ---10 727.470
      FROM billdetail a
      INNER JOIN bill c
        ON (a.bill_id = c.bill_id)
      INNER JOIN dates d
        ON (c.date_id = d.date_id)
      WHERE d.year                = '2014'
        AND c.status        <> 'D'
        AND a.status        <> 'D';
    
    Run Code Online (Sandbox Code Playgroud)
  2. 查询:

    SELECT SUM(C_SUM) ---10 754.279
    FROM
      (
      SELECT SUM(a.amount) AS C_SUM
      FROM billdetail a
      INNER JOIN bill c
        ON (a.bill_id = c.bill_id)
      INNER JOIN dates d
        ON (c.date_id = d.date_id)
      WHERE d.year                = '2014'
        AND c.status        <> 'D'
        AND a.status        <> …
    Run Code Online (Sandbox Code Playgroud)

sql oracle

6
推荐指数
1
解决办法
200
查看次数

Oracle 11g 如何估算所需的TEMP 表空间?

我们对一些表进行初始批量加载(源和目标都是 Oracle 11g)。过程如下:1.截断,2.删除索引(PK和唯一索引),3.批量插入,4.创建索引(又是PK和唯一索引)。现在我收到以下错误:

alter table TARGET_SCHEMA.MYBIGTABLE
add constraint PK_MYBIGTABLE primary key (MYBIGTABLE_PK)
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
Run Code Online (Sandbox Code Playgroud)

所以显然 TEMP 表空间对于 PK 创建来说太小了(仅供参考,该表有 6 列和大约 22 亿条记录)。所以我这样做了:

explain plan for
select line_1,line_2,line_3,line_4,line_5,line_6,count(*) as cnt
from SOURCE_SCHEMA.MYBIGTABLE
group by line_1,line_2,line_3,line_4,line_5,line_6;

select * from table( dbms_xplan.display );
/*
-----------------------------------------------------------------------------------------------
| Id  | Operation          | Name             | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |                  |  2274M|    63G|       |    16M  (2)| …
Run Code Online (Sandbox Code Playgroud)

oracle oracle11g

5
推荐指数
1
解决办法
7092
查看次数

SSIS脚本组件作为源抛出System.NullReferenceException

我有一个DataFlow,其中有一个脚本组件作为源。

我已经根据需要定义了Output(OutputRows)和Column(MyOutputValue)。

当我想测试我的脚本时,即使使用硬编码值,也总是会遇到相同的错误:

System.NullReferenceException: Object reference not set to an instance of an object. at ScriptMain.CreateNewOutputRows().

我不知道这里出了什么问题。任何的想法?

这是我的代码:

using System;
using System.Data;
using System.Windows.Forms;
using System.Threading;
using System.Globalization;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using Microsoft.SqlServer.Dts.Runtime;
using Excel = Microsoft.Office.Interop.Excel;

[Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute]
public class ScriptMain : UserComponent
{
#region Members
    String MyOutputValue;
#endregion

public override void PreExecute()
{
    base.PreExecute();


    MyOutputValue = "test";

    CreateNewOutputRows();

}

public override void PostExecute()
{

base.PostExecute();
}

public override void CreateNewOutputRows()
{
    OutputRowsBuffer.AddRow();

    OutputRowsBuffer.MyOutputValue = MyOutputValue;
}
}
Run Code Online (Sandbox Code Playgroud)

在我的SSIS程序包中,我开始调试,然后得到以下屏幕(它是德语,因此针对该帖子,我将错误翻译为英语): 在此处输入图片说明

c# ssis nullreferenceexception

3
推荐指数
1
解决办法
6601
查看次数