Oracle PL / SQL代码中的神秘声明(Mysterious declaration in Oracle PL/SQL code)
什么是Oracle PL / SQL中的这个&n声明? 代码示例(取自此处 )的用法如下所示:
DECLARE myex EXCEPTION; PRAGMA EXCEPTION_INIT(myex,-20015); n NUMBER := &n; BEGIN FOR i IN 1..n LOOP dbms_output.put.line(i); IF i=n THEN RAISE myex; END IF; END LOOP; EXCEPTION WHEN myex THEN dbms_output.put.line('loop is end'); END;What means this &n declaration in Oracle PL/SQL? Usage in code sample (taken from here) is shown below:
DECLARE myex EXCEPTION; PRAGMA EXCEPTION_INIT(myex,-20015); n NUMBER := &n; BEGIN FOR i IN 1..n LOOP dbms_output.put.line(i); IF i=n THEN RAISE myex; END IF; END LOOP; EXCEPTION WHEN myex THEN dbms_output.put.line('loop is end'); END;最满意答案
&n是一个替代变量 。
在语句中使用替换变量时,SQL * Plus会请求一个输入值并重写该语句以包含它。 重写的语句被传递给数据库。 因此,数据库服务器对替换变量一无所知。
&n is a substitution variable.
When a substitution variable is used in a statement, SQL*Plus requests an input value and rewrites the statement to include it. The rewritten statement is passed to the database. As a result, the database server knows nothing of the substitution variable.
更多推荐
发布评论