我可以知道如何将记录类型值传递给函数参数吗?
以下是我的尝试。我在调用“错误的数字或类型的参数......”错误 我已经搜索过,但似乎找不到能帮助我的明确答案。
希望有人能回答。
DECLARE
TYPE attribute_type_record IS RECORD
(
name VARCHAR2(100)
,value VARCHAR2(400)
,ind integer
);
type attribute_type is table of attribute_type_record index by binary_integer;
sid_att attribute_type;
ret varchar2(3000);
BEGIN
sid_att(1).name := 'SID_ATTRIBUTES.REFERENCE1';
sid_att(1).value := 'SID_ATTRIBUTES.REFERENCE1';
sid_att(1).ind := '1';
--v_row := sid_attributes_table('SID_ATTRIBUTES.REFERENCE1');
ret := SC$DATA_ENTRY.ins_sid_attributes(sid_att(1).name,
sid_att(1).value,
sid_att(1).ind,
'594191176',
'TEST');
END;
FUNCTION ins_sid_attributes (
p_sid_attributes_table sc$data_entry_utilities.attribute_table,
p_sid_id sid_attributes.sid_id%TYPE,
p_user IN VARCHAR2
)
RETURN VARCHAR2
IS
error_message VARCHAR2 (2000);
v_row sc$data_entry_utilities.attribute_type;
empty_row sc$data_entry_utilities.attribute_type;
v_order INTEGER := 0;
v_name VARCHAR2 (2000);
cat_table pkg_utilities.number_table;
-- I did not post the rest of the code of this function since i believe it is irrelevant to the error and to keep it short.
提前致谢! 诺斯
答案 0 :(得分:1)
假设上面显示的INS_SID_ATTRIBUTES
程序是您实际尝试呼叫的程序,那么该消息对我来说似乎是合理的。如上所示,INS_SID_ATTRIBUTES
需要三个参数:
但是在通话中你传递了它:
因此,您将五个参数传递给只接受三个的过程,而您传递的值的类型错误。
分享并享受。