У меня есть хранимая процедура в 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>
хранимая функция proc:
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
get_emails( userId, true)
- person Scott Stroz   schedule 08.08.2014