AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-14734

Bob Klimes's questions

Martin Hope
Bob Klimes
Asked: 2018-01-10 11:37:06 +0800 CST

在没有函数的情况下以相同的顺序拆分两个分隔的字符串

  • 1

我正在尝试将带有分隔字符串的两列拆分为行。每个字符串中值的位置是相关的,因此我试图将其拆分,以便相关值在一行中。我无法使用函数,因为我无法在数据库中创建对象

这是示例表和数据

CREATE TABLE #temp
(id   INT,
 keys VARCHAR(50),
 vals VARCHAR(50)
);

INSERT INTO #temp
VALUES
(1, '1,2,3', 'one,two,three'),
(2, '4,5,6', 'four,five,six'),
(3, '7,8,9', 'seven,eight,nine');

我想要的输出是

ID  key  val
1   1    one
1   2    two
1   3    three
2   4    four
2   5    five
2   6    six
3   7    seven
3   8    eight
3   9    nine

如果我只拆分一列,我的查询就可以工作,所以我用 row_number 定义了两个 CTE,并在 ID 和 row_number 上加入。这确实提供了所需的输出,但我的实时表非常大,我希望有一种方法可以只通过表一次,而不是两次。

with keys as(
SELECT id,keys,vals,
       keys.keyid.value('.', 'VARCHAR(8000)') AS keyid,
      row_number() over(order by (select null)) as rn
FROM
(SELECT id,keys,vals,
           CAST('<Keys><key>'+REPLACE(keys, ',', '</key><key>')+'</key></Keys>' AS XML) AS tempkeys
    FROM #temp
) AS temp
CROSS APPLY tempkeys.nodes('/Keys/key') AS keys(keyid)),
vals as(
SELECT id,keys,vals,
       vals.val.value('.', 'VARCHAR(8000)') AS valid,
      row_number() over(order by (select null)) as rn
FROM
(SELECT id,keys,vals,
           CAST('<vals><val>'+REPLACE(vals, ',', '</val><val>')+'</val></vals>' AS XML) AS tempvals
    FROM #temp
) AS temp
CROSS APPLY tempvals.nodes('/vals/val') AS vals(val))


SELECT k.id, k.keyid, v.valid
FROM keys AS k
     INNER JOIN vals AS v
     ON k.id = v.id
        AND k.rn = v.rn; 
sql-server sql-server-2012
  • 2 个回答
  • 3131 Views
Martin Hope
Bob Klimes
Asked: 2016-03-31 12:21:34 +0800 CST

由于脚本组件,将 SSIS 包更新到 2014 时出错

  • 3

我正在尝试更新包含脚本组件的 SSIS 包。脚本组件只获取此处描述的错误描述。

我正在使用 SSDT 2015 中的更新向导,它应该与 SQL Server 2014 兼容。(ssdt)

包更新向导运行后,我会收到有关每个具有脚本组件的数据流的警告和信息。

警告 0x40016044:加载表 TableName:找到 SQL Server Integration Services 2012 脚本组件 TableName 错误描述需要迁移!

信息 0x4001601a:加载表 TableName:TableName 错误描述已被迁移。必须保存包以保留迁移更改

这在我看来就像脚本组件已成功迁移。然后我构建包并将其部署到我的 SSIS 实例。

当我尝试通过 SQL 代理或集成服务目录在实例上执行包时,包验证失败并出现以下错误。

加载表 PersonDisability:Error: Microsoft.SqlServer.Dts.Pipeline.ComponentVersionMismatchException: 表名错误 Desc 的版本与此版本的 DataFlow 不兼容。[[指定组件的版本或管道版本或两者都高于当前版本。此包可能是在新版本的 DTS 或组件上创建的,而不是在当前 PC 上安装的。]] 在 Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostCheckAndPerformUpgrade(IDTSManagedComponentWrapper100 wrapper, Int32 lPipelineVersion)

加载表 TableName:错误:“TableName 错误描述”的组件元数据无法升级到组件的较新版本。PerformUpgrade 方法失败。

基于这些,如果消息是准确的,我有一个版本不匹配。我的实例是 2014 SP1 CU3 (12.0.4427.24),我进行包更新的 SSDT 是 2015(14.0.51128.0)

这些版本不兼容吗?

sql-server ssis
  • 1 个回答
  • 11079 Views
Martin Hope
Bob Klimes
Asked: 2012-12-08 11:30:11 +0800 CST

使用分布式交换机从 VMWare 来宾批量插入 SQL Server

  • 10

这很可能不是 SQL Server 问题,但设置似乎只影响 SQL Server 的 BULK INSERTS。

我们最近移动了 VM 硬件,所有被移动的来宾都将其虚拟交换机从标准更改为分布式。

然后我开始收到

从网络读取输入流时发生致命错误。会话将被终止(输入错误:64,输出错误:0)

在 BULK INSERT 操作期间在两个 SQL 服务器上。其中一个 SQL 服务器是具有新配置的 VM,另一个是物理服务器。两个 BULK INSERT 操作都源自具有新配置的 VM。BULK INSERT 不会每次都失败,它是非常随机的。

当我们将虚拟交换机更改为标准交换机而不是分布式交换机时,问题就消失了。

我正在寻找更多关于为什么它不适用于分布式交换机而不是解决方案的解释。我的猜测是 BULK INSERT 操作是串行的,并且使用分布式交换机,数据包正在通过不同的主机进行路由,其中​​一些主机可能比其他主机更忙,并且到达目标服务器时超过了某个延迟阈值。(注意:在源服务器或目标服务器上出现错误时,Windows 事件日志中没有任何内容)

更新:原来问题是由于 NIC。我们所有的虚拟机都配置了 E1000 NIC,它在标准交换机上运行良好。迁移到分布式交换机后,我们开始看到大数据传输的问题,而不仅仅是 sql 查询。将 NIC 更改为 VMXNET3 似乎已经解决了这个问题。

sql-server vmware
  • 3 个回答
  • 4002 Views
Martin Hope
Bob Klimes
Asked: 2012-10-25 06:36:15 +0800 CST

无法在集群上创建登录

  • 4

我在 Win2008 R2 上有一个 SQL Server 2008 R2 集群。

我无法为服务帐户添加登录名。

我添加到此实例的任何其他登录都可以正常工作,并且我已经能够将相同的服务帐户登录添加到许多其他 SQL 实例。

将实例移动到其他节点并不能解决问题。

当我跑步时

 CREATE LOGIN [DOMAIN\ServiceAccount] FROM windows; 

我得到错误

Msg 15401, Level 16, State 1, Line 1
Windows NT user or group 'DOMAIN\ServiceAccount' not found. 
    Check the name again. 

当我跑

exec xp_logininfo 'DOMAIN\ServiceAccount', 'all'; 

我得到错误

Msg 15404, Level 16, State 11, Procedure xp_logininfo, Line 62
Could not obtain information about Windows NT group/user 
    'DOMAIN\ServiceAccount', error code 0xffff0002. 

任何建议,将不胜感激。

sql-server sql-server-2008-r2
  • 3 个回答
  • 2388 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve