Oracle Apex - ORA-00932:数据类型不一致:应为 CHAR 获得 NUMBER
Oracle Apex - ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
我收到 ORA-00932:数据类型不一致:预期 CHAR 在尝试查询以下内容时出现 NUMBER 错误:
case
when PRODUCT_NAME = 'Something' and PRICE is not null
and QUANTITY > 0
then :P4_MY_NUMERIC_ITEM
else 1
end MY_COLUMN
(item :p4 是一个预填充的(通过计算)项目。值 = 1 )
有趣(奇怪)的是,当我实际上 select 一个数字时它起作用了(但这不是我需要的,因为用户应该可以编辑该项目):
case
when PRODUCT_NAME = 'Something' and PRICE is not null
and QUANTITY > 0
then 2
else 1
end MY_COLUMN
有谁知道为什么会这样,以及如何解决这个问题,让我的项目保留在查询中?
谢谢!
一个 case
表达式 return 是一个单一值,属于单一类型。所有分支都应具有相同的类型。
尽管它的名字 :P4_MY_NUMERIC_ITEM
看起来是一个字符串。您有两个选择:
- 使用适当的类型
:P4_MY_NUMERIC_ITEM
。
- 或者,将
else
更改为 return 字符串:else '1'
.
这样可以吗?
else '1'
因为 Apex 项目是 字符串 所以 :P4_MY_NUMERIC_ITEM
(尽管包含数字)是一个字符串。 CASE
需要相同的数据类型,即
case when ... then <string>
else <expects a string as well, hence '1' and not just 1>
end
或者,将 :P4
项转换为数字:
case when ... then to_number(:P4_MY_NUMERIC_ITEM)
else 1
end
我收到 ORA-00932:数据类型不一致:预期 CHAR 在尝试查询以下内容时出现 NUMBER 错误:
case
when PRODUCT_NAME = 'Something' and PRICE is not null
and QUANTITY > 0
then :P4_MY_NUMERIC_ITEM
else 1
end MY_COLUMN
(item :p4 是一个预填充的(通过计算)项目。值 = 1 ) 有趣(奇怪)的是,当我实际上 select 一个数字时它起作用了(但这不是我需要的,因为用户应该可以编辑该项目):
case
when PRODUCT_NAME = 'Something' and PRICE is not null
and QUANTITY > 0
then 2
else 1
end MY_COLUMN
有谁知道为什么会这样,以及如何解决这个问题,让我的项目保留在查询中?
谢谢!
一个 case
表达式 return 是一个单一值,属于单一类型。所有分支都应具有相同的类型。
尽管它的名字 :P4_MY_NUMERIC_ITEM
看起来是一个字符串。您有两个选择:
- 使用适当的类型
:P4_MY_NUMERIC_ITEM
。 - 或者,将
else
更改为 return 字符串:else '1'
.
这样可以吗?
else '1'
因为 Apex 项目是 字符串 所以 :P4_MY_NUMERIC_ITEM
(尽管包含数字)是一个字符串。 CASE
需要相同的数据类型,即
case when ... then <string>
else <expects a string as well, hence '1' and not just 1>
end
或者,将 :P4
项转换为数字:
case when ... then to_number(:P4_MY_NUMERIC_ITEM)
else 1
end