【发布时间】:2018-04-11 17:56:24
【问题描述】:
所以我有一个 JAVA 程序调用一个存储过程并将数据从 XML 文件传递到我的存储过程中设置的参数。我尝试从 oracle 中调用存储过程,它们适用于单个值。即使有多个值,这个存储过程也能工作吗?我是否需要包含某种 FOR 循环以确保插入所有值? 以下是我的代码:
CREATE OR REPLACE PROCEDURE pega_submission_value (
rsubmission_id IN NUMBER,
rvalue_tx IN VARCHAR,
rutc_offset IN NUMBER,
rdata_date IN VARCHAR,
rhr_utc IN VARCHAR,
rhr IN TIMESTAMP,
rhr_num IN NUMBER,
rdata_code IN VARCHAR,
rdata_type IN VARCHAR
) IS
v_value_id value.value_id%TYPE;
BEGIN
NULL;
INSERT INTO value (
value_id,
product_id,
data_source_id,
unit_cd,
value_tx,
utc_offset,
data_date,
hr_utc,
hr,
hr_num,
data_code,
create_dt,
create_user_id
) VALUES (
NULL,
555,
3,
'NA',
rvalue_tx,
rutc_offset,
rdata_date,
rhr_utc,
rhr,
rhr_num,
rdata_code,
SYSDATE,
'15'
) RETURNING value_id INTO v_value_id;
INSERT INTO submission_value (
submission_id,
value_id,
form_field_id,
create_dt,
create_user_id,
modify_dt,
modify_user_id,
effective_dt,
inactive_dt
) VALUES (
rsubmission_id,
v_value_id,
(
SELECT
form_field_id
FROM
form_field
WHERE
form_field_tx = rdata_type
),
SYSDATE,
'777',
NULL,
NULL,
NULL,
NULL
);
COMMIT;
END pega_submission_value;
/
【问题讨论】:
-
您当然可以传入多个值,然后使用循环或 FORALL 语句,甚至从表(数组)中插入选择。那么问题来了:你想怎么传入多个值呢?
-
我将如何使用循环?我真的找不到任何地方如何设置它...... :(