如何通过讨论来自用户的输入来将多行插入到表中 使用pl / sql程序中的循环插入tablename值(& value1,'& value2',...)。
一些示例代码是
begin
for i in 1..3
loop
insert into tablename values(&value1,'&value2');
end loop;
end;
上面的代码只输入一次,但它将相同的数据插入表中3次。
有没有办法在每次循环迭代时从用户那里得到不同的输入。
答案 0 :(得分:0)
PL / SQL 不是交互式的,因此不适合接受用户输入。我建议为最终用户提供此任务的UI。 &
用于SQL*Plus
中的替换变量。
虽然可以在SQL*Plus
中进行,但我仍然想知道究竟谁想要将SQL * Plus作为用户界面提供给用户。
无论如何,你需要两个脚本来完成任务,一个插入脚本来执行插入,另一个脚本来控制用户输入并清除退出。
<强> insert.sql:强>
INSERT INTO tablename VALUES
('&value'
);
<强> control.sql:强>
ACCEPT SELECTION PROMPT "Enter values to insert, enter 'exit' when no more values to insert :"
SET TERM OFF VERIFY OFF
COLUMN USER_MENU NEW_VALUE SCRIPT
SELECT
CASE '&selection.'
WHEN 'exit'
THEN NULL
ELSE '@insert &menu.'
END AS user_menu
FROM dual;
SET TERM ON
@&script