ORA-01722: 数字无效但仅当查询用作子查询时
ORA-01722: invalid number but only when query used as subquery
一个查询,像这样:
SELECT SUM(col1 * col3) AS total, col2
FROM table1
GROUP BY col2
在 运行 单独时按预期工作。
供参考:
table1.col1 -- float
table1.col2 -- varchar2
table1.col3 -- float
当此查询移动到子查询时,我收到 ORA-01722 错误,参考 select 子句中的 "col2" 位置。较大的查询如下所示:
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON table3.col3 = subquery1.col2
供参考:
table3.col3 -- varchar2
可能还值得注意的是,我还有另一个查询,来自 table2,其结构与 table 相同1。如果我使用 table2 中的子查询,它就可以工作。使用 table1.
时它从不工作
没有连接,数据类型匹配,查询自己工作......我在这里不知所措。我还应该寻找什么?有什么明显的痛苦问题摆在我面前?
(我没有选择或制作 table 结构,也无法更改它们,因此不幸的是,对此的回答不会有帮助。)
尝试使用适当的 float 转换为 char ..
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON to_char(table3.col3) = subquery1.col2
一个查询,像这样:
SELECT SUM(col1 * col3) AS total, col2
FROM table1
GROUP BY col2
在 运行 单独时按预期工作。
供参考:
table1.col1 -- float
table1.col2 -- varchar2
table1.col3 -- float
当此查询移动到子查询时,我收到 ORA-01722 错误,参考 select 子句中的 "col2" 位置。较大的查询如下所示:
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON table3.col3 = subquery1.col2
供参考:
table3.col3 -- varchar2
可能还值得注意的是,我还有另一个查询,来自 table2,其结构与 table 相同1。如果我使用 table2 中的子查询,它就可以工作。使用 table1.
时它从不工作没有连接,数据类型匹配,查询自己工作......我在这里不知所措。我还应该寻找什么?有什么明显的痛苦问题摆在我面前?
(我没有选择或制作 table 结构,也无法更改它们,因此不幸的是,对此的回答不会有帮助。)
尝试使用适当的 float 转换为 char ..
SELECT col3, subquery1.total
FROM table3
LEFT JOIN (
SELECT SUM(table1.col1 * table1.col3) AS total, table.1col2
FROM table1
GROUP BY table1.col2
) subquery1 ON to_char(table3.col3) = subquery1.col2