在PLSQL中提示用户

时间:2011-11-05 15:32:18

标签: sql plsql oracle10g sqlplus

我的任务是编写一个PLSQL模块将数据插入数据库。在某种情况下,它可能需要其他信息,并应提示用户再提供一个细节。这应该直接在PLSQL中完成,措辞直接来自作业。

我研究了这个话题,发现有些人说PLSQL无法做到这一点?但ACCEPT PROMPT功能确实存在。

ACCEPT v_string PROMPT 'Enter your age: ';

虽然这直接来自SQLPlus,但它在PLSQL中不起作用,因为它给了我这个错误:

PLS-00103: Encountered the symbol "V_STRING" when expecting one of the following: := . ( @ % ;

任何人都可以提供一些见解,告诉我应该如何从PLSQL中询问用户,只有当某个条件为真时(当你从DB获得其他东西时检查条件)。为了澄清,我只需要有关如何接受输入的帮助。

感谢您的时间。

3 个答案:

答案 0 :(得分:1)

有一个trick可以让你做这样的事情,但是(a)它有点像黑客,(b)你需要登录数据库服务器本身,(c)它只适用于Linux(也许还有其他类型的Unix)。

通常,不可能在PL / SQL中请求用户输入,尤其是在连接到远程计算机上的数据库时。你的作业是错误的,或者你误解了它。

答案 1 :(得分:0)

我检查并尝试了以下可能对您有帮助的事情。这只是我尝试过的一个例子。您可以实现自己的逻辑。

declare
c1 varchar2(50);
begin
c1:='&enter_value';
dbms_output.put_line(c1);
exception
when others then
dbms_output.put_line(sqlerrm);
end;

'&'将帮助您提示并要求用户输入。用户输入一些输入后,它将分配给变量,您可以在任何需要的地方使用变量。

希望这对您有所帮助。

答案 2 :(得分:0)

您无法在纯PL / SQL中获得用户输入。它是一种服务器端语言,用于表达业务/数据库逻辑。

使用“&”获取输入是“ sqlplus”功能,而不是PL / SQL策略。如果这是一项“作业”,那么您需要告诉老师这是无效的作业-也许这是一个棘手的问题!