sql - Oracle - WHERE 子句中的列 NUMBER(38) - 数据包含逗号

标签 sql oracle oracle11g nls-comp

我正在尝试使用列数据类型 NUMBER(38) 上的 where 子句查询表。由于它是一个数字(如下格式所示),因此这是行不通的

SELECT * FROM PAT WHERE ID='1,234'

所以我使用TO_NUMBER & NLS_NUMERIC_CHARACTERS转换了字符串

SELECT TO_NUMBER ('1,234', '9G999',
   'nls_numeric_characters = ''.,''') AS FROM Dual;

输出:1,234

但是,我不确定如何在 WHERE 子句中使用它:

INVALID IDENTIFIER

最佳答案

不要使用字符串作为数字。使用适当的数字常数:

select  * 
from PAT 
where ID = 1.234

数字不得用单引号引起来。在 SQL 中,小数点分隔符是 .

更多详细信息请参阅手册:https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements003.htm#SQLRF00220

关于sql - Oracle - WHERE 子句中的列 NUMBER(38) - 数据包含逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315387/

相关文章:

sql - BigQuery 加载作业失败, "Could not parse ' Text' as bool"

java - 如何在 Java 或 SQL 中将 ISO DATE 转换为时间戳?

sql - 选择 Oracle 中第二小的值

database - ORA-00904 : "TOTAL_ORDERS": invalid identifier

SQL - 如果有条件,我如何返回失败订单的数量?

sql - Visual Studio 无法向 SQL Server 添加数据连接

java - HQL 到 SQL : Querying an Oracle database in Netbeans

oracle - ORA-14300 分区键映射到最大允许分区数之外的分区”

oracle11g - 代表 :50125:rwbuilder. conf :java. lang.NullPointerException

c# - 更新 Visual Studio 中的数据集结构以匹配新的 SQL 数据库结构