我想写一个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;
/
答案 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.