Redshift 上的数字无效

2024-02-01

我正在尝试将一些数据从阶段加载到关系环境,但发生了一些我无法弄清楚的事情。

我正在尝试运行以下查询:

SELECT
  CAST(SPLIT_PART(some_field,'_',2) AS BIGINT) cmt_par
FROM
  public.some_table;

some_field 是一个包含由下划线连接的两个数字的数据的列,如下所示:

some_field -> 38972691802309_48937927428392

我正在努力获得第二部分。

也就是说,这是我收到的错误:

[Amazon](500310) Invalid operation: Invalid digit, Value '1', Pos 0, 
Type: Long 
Details: 
 -----------------------------------------------
  error:  Invalid digit, Value '1', Pos 0, Type: Long 
  code:      1207
  context:   
  query:     1097254
  location:  :0
  process:   query0_99 [pid=0]
  -----------------------------------------------;

Execution time: 2.61s
Statement 1 of 1 finished

1 statement failed.

它的字面意思是有些数字不是有效数字。我已经尝试获取引发错误的确切数据,它似乎是一个正常的字段,就像我所期望的那样。即使我抛出 NULL 字段也会发生这种情况。

我认为这将是一个编码错误,但我没有找到任何参考来解决这个问题。 有人有什么想法吗?

谢谢大家。


我刚刚遇到这个问题并进行了一些挖掘。好像是错误Value '1'是误导部分,问题实际上是这些字段作为数字无效。

就我而言,它们是空字符串。我在中找到了问题的解决方案这篇博文 https://blog.fishtownanalytics.com/how-to-safely-convert-strings-to-integers-in-redshift-a4d7aa39c70,这本质上是找到任何非数字字段,并在转换之前用 null 填充它们。

select cast(colname as integer) from
(select
 case when colname ~ '^[0-9]+$' then colname
 else null
 end as colname
 from tablename);

底线:这个 Redshift 错误完全令人困惑,确实需要修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redshift 上的数字无效 的相关文章

  • 使用 System.out.println 显示特殊字符

    我在将带有特殊字符的文本从网络服务发送或显示到数据库时遇到问题 在我的 Eclipse 上 我已将字符编码设置为 UTF 8 但它仍然不允许我显示字符 例如 像下面的代码一样简单的打印 String test System out prin
  • 从另一个表中选择范围之间的记录

    我有两张桌子 比如说Table1 and Table2 Table1 ID RN 11 1 12 2 13 3 14 4 15 5 16 6 17 7 18 8 19 9 10 10 Table2 ID FromRN ToRN 1 1 3
  • Cassandra 与 ZooKeeper 的事务 - 这有效吗?

    我正在尝试在 ZooKeeper 的帮助下为 Cassandra 实现一个事务系统 由于我认为我在数据库实现方面没有足够的经验 所以我想知道我的想法原则上是否可行 或者是否有任何重大缺陷 以下是步骤的高级描述 识别所有要编辑的行 键 和列
  • 如果我没有可在 T-SQL PIVOT 中用作聚合函数的列怎么办?

    正如这里所见 http www tsqltutorials com pivot php http www tsqltutorials com pivot php 如果我没有可以执行 SUM 的列怎么办 如何获得数据透视表结果 总有COUNT
  • 处理多种权限类型的最佳方法是什么?

    我经常遇到以下场景 我需要提供许多不同类型的权限 我主要使用 ASP NET VB NET 和 SQL Server 2000 Scenario 我想提供一个可以处理不同参数的动态权限系统 假设我想授予某个部门或特定人员访问应用程序的权限
  • 需要在SQL Server 2012中自动递增字符串

    考虑 SQL Server 2012 中的表 789 0000000 上面的数字在 SQL Server 2012 中将被视为字符串 但每当我更新记录时 我都需要增加到 1 例如 当我更新记录 1 时 它应该增加到789 0000001 当
  • 子查询在多项选择时返回超过 1 个值的 SQL 错误

    我想要一个临时表 它将使用 select 语句插入值 但每次我运行查询时 总是出现错误 子查询返回超过 1 个值 当查询跟随 gt 或子查询用作表达式时 不允许这样做 该语句已终止 0 行受影响 这很奇怪 因为代码中似乎没有错误 但如果有的
  • C# 与 INSERT 存储过程 \r\n 问题

    基本上我有一个非常简单的插入语句 INSERT INTO dbo ORDER ORDER DATE ORDER TYPE ID PAYMENT STATUS ID TOTAL COST SENDER NAME SENDER EMAIL SE
  • SQL:删除SQL Server中的重复记录

    我有一个 sql server 数据库 我预先加载了大量数据行 不幸的是 数据库中没有主键 并且表中现在存在重复信息 我不担心没有主键 但我担心数据库中有重复项 有什么想法吗 原谅我是一个sql server新手 嗯 这就是表上应该有主键的
  • 如何在 Elixir 的 Ecto 查询中使用“case-when”?

    我有一个 SQL 查询 例如 SELECT SUM CASE WHEN
  • 如何在Redshift中进行分层随机样本?

    我需要对从不同类别购买商品的客户进行随机抽样 有8个类别 订单分布在其中 如果我想对已购买的客户进行随机抽样 但保持每个类别的订单比例相同 我将如何在我的 sql 代码中进行设置 下面的表格强调了这一点 它不包括客户数据 我希望我的客户列表
  • BigQuery 标准 SQL 中具有不同架构的联合表

    附加具有不同架构的表的最佳方法是什么 表 0 架构 表1 架构 这很好用 SELECT img1 NULL as img2 FROM xxx staging table0 UNION ALL SELECT img1 img2 FROM xx
  • N 前缀和参数

    我有一些存储过程 CREATE PROC MyProc FullName NVARCHAR 200 NULL AS 当我将此过程称为exec MyProc Some english text 效果很好 但如果称其为exec MyProc 那
  • 需要 SQL 选择查询帮助

    我的问题类似于SQL选择组查询 https stackoverflow com questions 11407601 sql select group query 但模式发生了变化 我想要不同的结果 如下所述 给定链接的解决方案没有给我正确
  • SELECT * FROM 员工 WHERE NULL IS NULL; SELECT * FROM 员工 WHERE NULL = NULL;

    最近开始学习oracle和sql 在学习的过程中 我遇到了我的朋友在面试时被问到的几个问题 SELECT FROM Employees WHERE NULL IS NULL 此查询生成Employees 表中的所有行 至于我所理解的Orac
  • 执行Insert命令并返回Sql中插入的Id

    我正在 MVC 4 中使用 C 将一些值插入到 SQL 表中 实际上 我想插入值并返回最后插入记录的 ID 我使用以下代码 public class MemberBasicData public int Id get set public
  • 如何延长SQL查询的超时时间

    这不是连接超时 因为与数据库的连接正常 问题是我调用的存储过程花费的时间超过 30 秒 并导致超时 该函数的代码如下所示 SqlDatabase db new SqlDatabase connectionManager SqlConnect
  • 如何在oracle日志中打印http请求

    我们正在使用以下方式调用外部 URLUTL HTTP方法并设置 HTTP 标头 例如basic authentication keep alive content soap action所以我需要打印我设置为标题的内容 DBMS OUTPU
  • 如何使 Postgres Copy 忽略大 txt 文件的第一行

    我有一个相当大的 txt 文件 9gb 我想将此 txt 文件加载到 postgres 中 第一行是标题 后面是所有数据 如果我直接 postgres COPY 数据 标头将导致数据类型与我的 postgres 表不匹配的错误 因此我需要以
  • 每组最大 n 个 SQL 查询的高性能方法

    我正在尝试构建一个基础设施 以便根据需要快速运行回归 从包含我们网络服务器上所有历史活动的数据库中提取 apache 请求 为了通过确保我们仍然回归来自较小客户的请求来提高覆盖范围 我想通过为每个客户检索最多 n 个 为了这个问题 假设 1

随机推荐