我在 Oracle 中有一个存储过程。其中一个输入参数是定义的类型(见下文)。每当我调用 cfstoredproc 时出现的错误是“表达式的类型错误 ORA-06550”。它是一个格式化的 varchar,它是一个表格列。没有与之匹配的 CFPROCPARAM 类型。
类型是包定义的特定格式(表列):EMAIL_ADDRESSES_TABLE.USER_ID%TYPE。表列 USER_ID 为:USER_ID VARCHAR2(8 BYTE)
USER_ID 是一个用 0 填充的数字,例如 '00001234'
我的电话:
<cfstoredproc procedure="PK_EMAIL.get_emails" datasource="#MYDSN#">
<cfprocparam type="in" cfsqltype="CF_SQL_VARCHAR" variable="p_user_id" value="#formattedUserId#">
<cfprocparam type="in" cfsqltype="CF_SQL_NUMERIC" variable="p_active_only" value="1">
<cfprocresult name="spResult">
</cfstoredproc>
存储过程函数:
FUNCTION get_emails(
p_user_id IN EMAIL_ADDRESSES_TABLE.USER_ID%TYPE,
p_active_only IN SIMPLE_INTEGER
) RETURN EMAIL_ADDRESSES_TABLE;
我从系统得到的错误是:
[Macromedia][Oracle JDBC Driver][Oracle]ORA-06550: line 1, column 18: PLS-00382: expression is of wrong type ORA-06550: line 1, column 7: PL/SQL: Statement ignored