确定哪些行导致查询错误

2024-04-05

我有一个包含 15,000 行的 Oracle 18c 表。作为测试,我尝试对其运行以下查询:

select
    --works for all rows:
    --sdo_util.to_wkbgeometry(sdo_geometry(replace(sde.st_astext(shape),'LINESTRING M','LINESTRING')))
    
    --doesn't work for all rows (the problem is caused by: SDO_UTIL.FROM_WKBGEOMETRY() ):
    sdo_util.from_wkbgeometry(sdo_util.to_wkbgeometry(sdo_geometry(replace(sde.st_astext(shape),'LINESTRING M','LINESTRING'))))
from
    my_table;

当我在 SQL Developer 中运行该查询时,它最初运行时没有错误,但这只是因为它只选择前 50 行。

如果我尝试对所有行运行查询(通过 CTRL+END),则会抛出错误:

ORA-29532: Java call terminated by uncaught Java exception: java.lang.RuntimeException: oracle.spatial.util.GeometryExceptionWithContext: Byte order can only be either BIG_ENDIAN (encoded as 0) or LITTLE_ENDIAN (encoded as 1). Found encoding 65
ORA-06512: at "MDSYS.SDO_JAVA_STP", line 68
ORA-06512: at "MDSYS.SDO_UTIL", line 6244
29532. 00000 -  "Java call terminated by uncaught Java exception: %s"
*Cause:    A Java exception or error was signaled and could not be
           resolved by the Java code.
*Action:   Modify Java code, if this behavior is not intended.

如何确定哪些特定行导致该错误?

我尝试使用SDO_UTIL.VALIDATE_WKBGEOMETRY() https://docs.oracle.com/en/database/oracle/oracle-database/18/spatl/SDO_UTIL-reference.html#GUID-5B9C48E0-197A-4A92-9D4B-1B5793B0EBEB找到问题斑点。但令人惊讶的是,它没有返回任何FALSE values.


创建一个函数来包装导致问题的调用并捕获函数中的异常:

CREATE FUNCTION test_from_wkbgeometry(
  v_data IN BLOB
) RETURN NUMBER
IS
  temp SDO_GEOMETRY;
BEGIN
  temp := sdo_util.from_wkbgeometry(v_data);
  RETURN 1;
EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;
/

然后在您的查询中使用它:

SELECT *
FROM   my_table
WHERE  test_from_wkbgeometry(
         sdo_util.to_wkbgeometry(
           sdo_geometry(replace(sde.st_astext(shape),'LINESTRING M','LINESTRING'))
         )
       ) = 0;

在更高的 Oracle 版本中,您可以在查询中定义函数:

WITH FUNCTION test_from_wkbgeometry(
  v_data IN BLOB
) RETURN NUMBER
IS
  temp SDO_GEOMETRY;
BEGIN
  temp := sdo_util.from_wkbgeometry(v_data);
  RETURN 1;
EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;
SELECT *
FROM   my_table
WHERE  test_from_wkbgeometry(
         sdo_util.to_wkbgeometry(
           sdo_geometry(replace(sde.st_astext(shape),'LINESTRING M','LINESTRING'))
         )
       ) = 0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确定哪些行导致查询错误 的相关文章

  • 没有为 1 个或多个必需参数给出值。更新SQL

    我正在编写一个程序 当用户在列表视图上选择记录时 该程序会更新密码或积分 我收到错误 没有为 1 个或多个必需参数给出值 我不知道如何纠正 我是否遗漏了一些明显的东西 Dim sql As String UPDATE Users SET P
  • SQL 错误:ORA-14006:无效的分区名称

    我正在尝试使用以下 SQL 语句对 Oracle 12C R1 中的现有表进行分区 ALTER TABLE TABLE NAME MODIFY PARTITION BY RANGE DATE COLUMN NAME INTERVAL NUM
  • 使用联接更新表?

    我正在尝试使用表 B 中的数据更新表 A 我以为我可以做这样的事情 update A set A DISCOUNT 3 from INVOICE ITEMS A join ITEM PRICE QUNTITY B on A ITEM PRI
  • 当从属文本框中没有输入文本时,如何让 gridview 显示所有表格行?

    下面的代码可以正常工作 并根据文本框中输入的文本过滤我的网格视图 当我的文本框中没有输入任何文本时 我没有得到任何结果 并且无法理解为什么 我的问题 如何让gridview显示all当文本框中没有输入文本时表行 MSSQL Search n
  • postgresql:插入...(选择*...)

    我不确定它是否是标准 SQL INSERT INTO tblA SELECT id time FROM tblB WHERE time gt 1000 我正在寻找的是 如果 tblA 和 tblB 位于不同的数据库服务器中怎么办 Postg
  • 获取在任何日期创建的表的列表?

    我遇到了这样的情况 我想查找我在 2012 年 9 月 14 日 2012 年 9 月 14 日 在 sql server 上创建的表 是否有任何查询会列出在此日期创建的这些表 SELECT FROM sys tables WHERE cr
  • 更好地理解 SQL Server 中的架构

    就像标题一样 我还是一个SQLServer菜鸟 当我创建表 Mytable 时 数据库中显示 dbo Mytable 但有人能让我更好地理解模式吗 另外 在 Server 2008 TSQL 一书中 Itzik 说 在你的数据库中 表属于模
  • Oracle SQL 函数中可以有 commit 语句吗

    在 SQL 函数中使用 COMMIT 语句是否可能 有意义 从技术上来说 答案是肯定的 你can请执行下列操作 create or replace function committest return number as begin upd
  • 如何拥有引用另一个表的检查约束?

    我在 SQL Server 2008 数据库中有以下表 tblItem 其中有一个ItemID field 好项目 它还有一个 ItemID 字段 并且有一个指向 tblItem 的外键 tblBadItem 它也有一个 ItemID 字段
  • PLSql 返回值

    我再次使用一些 PLSql 我想知道 是否有任何方法可以像选择一样使用以下函数 而不必将其转换为函数或过程 这样我就可以从包含它的脚本中看到代码 代码如下 DECLARE outpt VARCHAR2 1000 flow rI VARCHA
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • Oracle 中的 Json_object 返回 ORA-00907: 缺少右括号

    我正在尝试将 Oracle 表数据转换为 JSON 文件 我有三个数据库 下面的代码在一个数据库中以 JSON 文件形式提供输出 但其他两个数据库抛出ORA 00907 missing right parenthesis error 从语法
  • 通过 C# SqlCommand 执行合并语句不起作用

    我正在第一次尝试使用临时表和MERGE语句通过更新 SQL 表SqlCommandC 中的对象 我正在开发的程序旨在首先将大量记录 最多 20k 导出到 Excel 电子表格中 然后 用户可以搜索并替换特定值 并根据需要更新任意多记录中的任
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 计算2个日期之间每个日期的记录数

    我必须创建一个查询来返回多轴图表的结果 我需要计算为 2 个日期之间的每个日期创建的 ID 数量 我试过这个 DECLARE StartDate datetime2 7 11 1 2020 EndDate datetime2 7 2 22
  • SQL Server 中离线索引重建和在线索引重建有什么区别?

    重建索引时 有一个选项ONLINE OFF and ONLINE ON 我知道当ONLINE模式打开时 它会复制索引 切换新查询以利用它 然后重建原始索引 使用版本控制跟踪两者的更改 如果我错了 请纠正我 但是 SQL 在离线模式下会做什么
  • 需要在 SQL Server 中透视字符串值

    我有一个包含值的表 描述为 Occupation String Name String Developer A Developer B Designer X Coder Y Coder Z 我需要数据透视格式的值 Designer Deve

随机推荐

  • 快速清除 JSON 缓存?

    我正在处理一些经常更新的 API 数据 我最近发现 当数据在服务器上更新时 数据在手机上无法正确更新 经过几个小时的尝试解决此问题后 我终于尝试从手机中删除该应用程序 然后重新安装 它成功了 经过进一步测试 我发现它打印出旧的 JSON 一
  • 将参数传递给 h:outputtext 标记中的方法

    我想通过将属性传递给在支持 bean 中实现的方法来在 jsf 屏幕中显示文本 我必须将动态值作为属性传递 我尝试了下面的内容 但它似乎是一个不正确的语法
  • PHP 中的函数超时

    有没有办法让函数超时 我有 10 分钟的时间来完成一项工作 该作业包含一个 for 循环 下面是一个示例 arr 有 15 个元素 some function 有时可能需要 1 分钟以上 事实上 有一次它被挂了5分钟 有没有办法让函数调用超
  • DataFrame 按元素除以就地行总和

    我希望每个元素除以行的总和 下面的代码总是出错 熊猫新手 谢谢 df pd DataFrame np random rand 12 reshape 3 4 columns list abcd df row sum df apply lamb
  • 如何在React Native中重置Firebase身份验证密码

    我想知道如何在我的react native项目中重置firebase电子邮件身份验证密码的密码 我想发送一封电子邮件来重置密码 如何使用以下方法做到这一点 firebase auth sendPasswordResetEmail forgo
  • 从php访问json数据

    我在访问 JSON 数据时遇到问题 我对 JSON 和 jquery 很陌生 所以可能有一个简单的解决方案 我很高兴找到答案 我的 jQuery post currentPage php currentPage 1 function dat
  • 如何将第 3 方库添加到 Android AOSP 构建中?

    我正在尝试将 Jackson JSON 库添加到我的 AOSP 项目中 我可以编译我的项目并将其刷新到手机 但出现运行时错误 E JavaBinder 1689 java lang NoClassDefFoundError Failed r
  • 如何查看 ASP.Net MVC 中调用的每个控制器和操作方法?

    我一直致力于其他人用 ASP Net MVC 开发的许多项目 很多时候 我想在调试某些内容时查看页面加载期间调用了哪些控制器和操作 通常我会在控制器中设置一个断点 然后从那里转到视图以查看它是否包含任何 RenderAction Rende
  • fluidvalidation 更改 int/long 的默认错误消息

    有没有办法更改 FluentValidation 中的默认错误消息 我们能够为更复杂的类型设置验证 但简单的 您输入的数据不是整数 样式的东西我们似乎无法理解 这些的内置错误是 值 x 对 y 无效 或类似的内容 有没有办法覆盖这些 没有简
  • 使用 Internet Explorer 与 Chrome 和 Firefox 进行跨域 HTTP

    我正在我的 Web 应用程序和服务器之间发出 CORS 请求 该请求是一个简单的授权请求 请求发送后 服务器设置一个 JSESSIONID cookie 弹出一个对话框 输入您的用户名和密码 然后按提交 一旦凭据正确 httpRequest
  • 推荐的在线片段管理器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个在线片段管理器 用于工作 个人使用和灵感 我的主要需求是谷歌 脸书登录 各种编程语言的字体
  • CKFetchRecordsOperation + CKQueryOperations ...我错过了什么?

    经过大量搜索示例代码后 设法拼凑出 CKFetchRecordsOperation 就在这里 但我一定错过了什么 别误会我的意思 它确实是一种享受 但是 要执行 CKFetchRecordsOperation 您需要一个 CKRecordI
  • 如何获取类中函数的返回类型?

    例如 class A int foo return 1 void goo decltype A nullptr gt foo i The decltype A nullptr gt foo 在这里不起作用 因为 A 是不完整的类 怎么做 关
  • bluez 同时具有经典和低能耗设备

    Linux下的bluez是否可以同时连接多个经典和低能耗设备 bluez 网站提供这样的信息不是很有帮助 是的 我已经成功同时连接到 7 个低能耗设备 最大值因您使用的硬件而异 您还可以连接到多个经典设备 以下是我用于通过 L2CAP 连接
  • 在 django 中扩展表单?

    我最近尝试使用以下内容扩展 django 的注册表单 但我只能看到默认的四个字段 我有什么遗漏的吗 或者 如果我要创建自定义表单 我应该创建自己的注册后端吗 class RegistrationForm forms Form usernam
  • 将 javascript 日期解析为 golang 日期

    我需要解析通过调用获得的 JavaScript 格式的日期new Date 看起来像Sat Aug 27 2016 17 07 43 GMT 1000 AEST 然后我将其作为字符串发布到我的 golang 服务器 我需要解析它以使其格式与
  • 将 PIL 图像转换为字节数组?

    我有一个 PIL 图像格式的图像 我需要将其转换为字节数组 img Image open fh mode r roiImg img crop box 现在我需要roiImg作为字节数组 感谢大家的帮助 终于解决了 import io fro
  • 无法建立新连接:[Errno 111] 连接被拒绝

    我正在尝试从路透社获取数据并获取如下代码 但我认为由于不断的请求 我无法抓取更多数据 有办法解决这个问题吗 我正在使用谷歌Colab 虽然类似的问题还有很多 但都没有答案 如果我能得到一些帮助 我将非常感激 谢谢 pip install s
  • 递归更改 JSON 键名称(全部大写)?

    有没有办法将所有 JSON 键名称更改为大写字母 eg name john Age 21 sex male place state ca 并需要转换为 NAME john AGE 21 SEX male PLACE STATE ca 从你的
  • 确定哪些行导致查询错误

    我有一个包含 15 000 行的 Oracle 18c 表 作为测试 我尝试对其运行以下查询 select works for all rows sdo util to wkbgeometry sdo geometry replace sd