从不同模式查询连接时出错
error when query join from different schema
我想连接来自不同模式的记录,但结果仍然是错误 ORA-00907:缺少右括号。
这是我的查询
select a.column1, a.column2, b.cast(column3 AS NUMBER)
from schema1.tablea a
left join schema2.tableb b
ON a.column1 = b.cast(column2 AS NUMBER)
仅供参考,第 1 列和第 2 列是数字数据类型,第 3 列是 varchar2 数据类型
更新:
我更新了查询但仍然出错。 ORA-01722: 数字无效
select a.column1, a.column2, cast(b.column3 AS NUMBER)
from schema1.tablea a
left join schema2.tableb b
ON a.column1 = cast(b.column2 AS NUMBER)
谢谢
这意味着 B.ACCOUNTNO
包含不能转换为数字的值,例如 123AB
。
怎么办?不要将数字存储到 VARCHAR2
数据类型列中。
现在怎么办?找到这样的值并修复它们。或者,将 WHERE
子句包含在您的查询中,以避免出现此类值。例如:
SQL> with test (accountno) as
2 (select '12345' from dual union all -- valid
3 select '123AB' from dual union all -- invalid
4 select '12AB5' from dual -- invalid
5 )
6 select accountno
7 from test
8 where regexp_like(accountno, '^\d+$');
ACCOU
-----
12345
SQL>
我想连接来自不同模式的记录,但结果仍然是错误 ORA-00907:缺少右括号。
这是我的查询
select a.column1, a.column2, b.cast(column3 AS NUMBER)
from schema1.tablea a
left join schema2.tableb b
ON a.column1 = b.cast(column2 AS NUMBER)
仅供参考,第 1 列和第 2 列是数字数据类型,第 3 列是 varchar2 数据类型
更新:
我更新了查询但仍然出错。 ORA-01722: 数字无效
select a.column1, a.column2, cast(b.column3 AS NUMBER)
from schema1.tablea a
left join schema2.tableb b
ON a.column1 = cast(b.column2 AS NUMBER)
谢谢
这意味着 B.ACCOUNTNO
包含不能转换为数字的值,例如 123AB
。
怎么办?不要将数字存储到 VARCHAR2
数据类型列中。
现在怎么办?找到这样的值并修复它们。或者,将 WHERE
子句包含在您的查询中,以避免出现此类值。例如:
SQL> with test (accountno) as
2 (select '12345' from dual union all -- valid
3 select '123AB' from dual union all -- invalid
4 select '12AB5' from dual -- invalid
5 )
6 select accountno
7 from test
8 where regexp_like(accountno, '^\d+$');
ACCOU
-----
12345
SQL>