我被赋予了将开始日期和结束日期从 aspx/c# 页面传递到 orcale 过程的任务。我在页面上有 2 个 DateTime 对象列表,一个开始日期列表和一个结束日期列表。
我的问题是我应该怎么做?我相信我将不得不创建一个用户定义的类型来传递给程序,可能是一个二维数组,但我真的不知道如何:
A. 使用 2 个列表中的值填充数组,并且:
B. 创建一个用户定义的类型以传递给过程。
我已经做了一些挖掘,但没有很多好的例子,我什至不确定我是否走在正确的轨道上。我会很感激任何帮助,因为我真的很难解决这个问题。我在下面包含了 oracle pl/sql 代码(无法更改,因为我没有能力进行修改):
PROCEDURE p_add_project_dates(
p_project_id IN CS01_PROJECT_HEADER.PROJECT_ID%TYPE,
p_tab_project_dates IN t_tab_project_dates,
p_any_time_participation IN CS01_PROJECT_HEADER.ANY_TIME_PARTICIPATION%TYPE,
p_error_msg OUT VARCHAR2,
p_return_code OUT NUMBER
) IS
occur_added_retcode NUMBER := 0;
occur_added_message VARCHAR2(500);
BEGIN
p_return_code := 0;
-- Update ANY_TIME_PARTICIPATION.
UPDATE CS01_PROJECT_HEADER
SET ANY_TIME_PARTICIPATION = p_any_time_participation
WHERE PROJECT_ID = p_project_id;
-- Add project occurrence for every record in p_tab_project_dates.
FOR i IN 1 .. p_tab_project_dates.COUNT LOOP
CS02_PCK.p_add_project_occurrence(p_project_id, p_tab_project_dates(i).start_date, p_tab_project_dates(i).end_date, occur_added_message, occur_added_retcode);
IF occur_added_retcode = 20 THEN
p_return_code := 20;
EXIT;
END IF;
END LOOP;
IF p_return_code = 0 THEN
COMMIT;
ELSE
ROLLBACK;
p_error_msg := 'An unexpected error occurred';
END IF;
例外
WHEN OTHERS THEN
ROLLBACK;
p_error_msg := 'An unexpected error occurred';
p_return_code := 20;
结束 p_add_project_dates;