用户输入'n'次PL / SQL

时间:2017-10-01 09:03:16

标签: oracle plsql

我想写一个PL / SQL程序,用户输入'n'次。这里n是10,但是这只输入1次,并且当循环从1到10时显示该输入值10次。如何编写一个带有'n'个输入值并显示它们的程序。

set serveroutput on;
DECALRE
num NUMBER(10);
BEGIN

for i in 1..10 
loop
    dbms_output.put_line(&num);
    END loop;
END;
/

3 个答案:

答案 0 :(得分:0)

def l(y, X, w):
    y_1 = np.dot(y, logsigma(X @ w))
    y_0 = (1 - y) @ (1 - np.log(1 - logsigma(X @ w)))
    return y_1 + y_0

答案 1 :(得分:0)

PL / SQL不是交互式语言。 SQL * Plus提示您输入值,它需要获取所需的所有替换值,然后才能将PL / SQL块发送到要执行的数据库。

因此,PL / SQL无法提示用户循环输入。

答案 2 :(得分:0)

阅读评论:

  给我的任务是: - "使用循环将10条记录插入表中 -   PL / SQL"

  

所以如果表中有5列,我是否必须使用50个变量   插入?

如果您想将same set of records插入您的桌子10次,请回答上述问题。以下是您可以这样做的方式。当您执行该块时,它将要求您为5列提供值,因此它将向表中插入具有相同值的10组记录。见下文。

SQL> DECLARE
       num1   NUMBER (10) := &num1;
       num2   NUMBER (10) := &num2;
       num3   NUMBER (10) := &num3;
       num4   NUMBER (10) := &num4;
       num5   NUMBER (10) := &num5;
    BEGIN
       FOR i IN 1 .. 10
          LOOP
          INSERT INTO TAB (col1,
                           col2,
                           col3,
                           col4,
                           col5)
               VALUES (num1,
                       num2,
                       num3,
                       num4,
                       num5);
       END LOOP;
       COMMIT;
    END;
    /   
    Enter value for num1: 1
    old   2:    num1   NUMBER (10) := &num1;
    new   2:    num1   NUMBER (10) := 1;
    Enter value for num2: 2
    old   3:    num2   NUMBER (10) := &num2;
    new   3:    num2   NUMBER (10) := 2;
    Enter value for num3: 3
    old   4:    num3   NUMBER (10) := &num3;
    new   4:    num3   NUMBER (10) := 3;
    Enter value for num4: 4
    old   5:    num4   NUMBER (10) := &num4;
    new   5:    num4   NUMBER (10) := 4;
    Enter value for num5: 5
    old   6:    num5   NUMBER (10) := &num5;
    new   6:    num5   NUMBER (10) := 5;

    PL/SQL procedure successfully completed.

输出:

SQL> select * from tab;    

      COL1       COL2       COL3       COL4       COL5
---------- ---------- ---------- ---------- ----------
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5
         1          2          3          4          5

10 rows selected.