ORA-48230: Expression arguments must match types

文档解释

ORA-48230: Expression arguments must match types

Cause: Incorrect type semantics for fields in the predicate.

Action: Correct the predicate.

ORA-48230 表示表达式参数必须匹配类型。这是一个由Oracle数据库引擎返回的错误代码,表明在解析查询已经识别的时候,发现参数的类型不匹配。

官方解释

常见案例

SELECT * FROM emp WHERE dname = (SELECT dname FROM dept WHERE dno = 10);

根本原因是字段dname和dept上的dname类型不匹配产生了错误,其中emp.dname为varchar2(20), 而dept.dname为number。

一般处理方法及步骤

1. 将子查询中的参数类型转换为父查询中参数要求的类型。

SELECT * FROM emp WHERE dname = (SELECT to_char(dname) FROM dept WHERE dno = 10);

2. 向查询中添加类型转换函数,使之参数类型匹配。

SELECT * FROM emp WHERE dname = to_char((SELECT dname FROM dept WHERE dno = 10));

你可能感兴趣的