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

使用“替换”查询时出错

公西培
2023-03-14

我在oracle服务器上有一个错误,但我不明白为什么它不工作。我使用oracle sql developer软件。

该查询是:

SELECT * FROM TestView WHERE REPLACE(TestView.Row2, '.', ',') > 0 ;

TestVue中的值。第2行:' 46.08 ','-46.47 ',' 1084.05 ',' 66500 ',...“测试视图”是检查返回没有空值的行的视图

当我执行查询时,总是出现一个错误,它说:

ORA-01722:无效号码01722.00000-"无效号码"*原因:*动作:

感谢您的帮助

Zoners

共有3个答案

曹茂材
2023-03-14

您应该能够找到类似这样的行:

select Row2
from TestVuw
where length(trim(translate(Row2, '+-.,0123456789', ' '))) = 0

当然,这允许多个-。它可以使用正则表达式进一步细化,但这通常可以找到坏的。

黄沈浪
2023-03-14

使用NVL函数来避免由空字段引起的错误,并在与零比较之前使用TO_NUMBER函数来转换为数字

SELECT * FROM TestView WHERE TO_NUMBER(REPLACE(NVL(TestView.Row2,'0'), '.', ',')) > 0 ;
翟俊远
2023-03-14

表中有一行无法解析为数字格式。很可能是空白列。

SELECT * FROM TestVue WHERE TestVue.Row2 IS NULL ;
 类似资料:
  • 操作步骤: 菜单栏: Refactor —> Replace Temp with Query...

  • 问题内容: 我希望能够使用“替换为”语句更新相同架构的表。最后,我需要能够使用可能已更改的值更新大型表。 这是我用来开始的查询: 我不明白的是,数据库引擎如何知道什么是重复行,什么不是?这些数据非常重要,我不能冒险破坏数据。是否简单如“如果列出的所有列都具有相同的值,它就是重复的行”? 我只是想找出一种有效的方法来执行此操作,因此我可以在一分钟内更新> 45,000行。 问题答案: 如文档所述:

  • 以下是Liquibase输入文件: --更改集dank:1 runalways=true failonerror:false 删除表aaa_schema.foo IBM错误代码-104是关于语法问题的。根据查看错误消息,我猜测它与行尾字符“;”有关。但是我已经尝试了使用分号和不使用分号的查询。IBM自己的db2也接受分号,因此它似乎是一个有效的选择。 非常感谢在找出此错误原因方面的任何帮助。

  • 问题内容: 现在我要使用 但这行不通,有什么想法吗? 问题答案: SQL不支持表名使用变量/ etc-支持您要求的唯一方法是使用动态SQL:

  • 我刚来盖茨比 查询本身非常适合在构建时获取数据,并将其作为道具传递给呈现每个菜单项的菜单组件。但是,在运行时,我希望再次从数据库中提取数据,并让它更新数据,例如,如果有价格变化,等等。 我知道我可以重建整个项目,但我希望这是一个后备方案。 如何让查询将数据发送到Menu组件,然后[再次发送数据?]当DB调用完成时。 当前未按预期工作的代码: index.jsx

  • 通常,我使用phpMyAdmin使用手动查找替换MySQL数据库中的文本。我现在已经厌倦了,我如何运行一个查询在phpMyAdmin中的整个表中查找并用新文本替换一个文本呢? 示例:查找关键字,替换为。