【发布时间】:2020-05-03 04:16:08
【问题描述】:
我有以下 SQL 过程代码:
create or replace procedure numOfSupplier(X IN NUMBER)IS
OUTPUT VARCHAR(500);
BEGIN
FOR supplerTable IN (SELECT R_NAME, N_NAME
FROM SUPPLIER join NATION on S_NATIONKEY = N_NATIONKEY
join REGION on N_REGIONKEY = R_REGIONKEY
GROUP BY R_NAME, N_NAME
HAVING COUNT (S_NATIONKEY) > X)
LOOP
DBMS_OUTPUT.PUT_LINE (supplerTable.R_NAME || supplerTable.N_NAME);
END LOOP;
END numOfSupplier;
/
运行时,给我:https://i.imgur.com/zEEKpya.png
我正在尝试这个节目:https://i.imgur.com/7fvAc6O.png
知道如何打印标题吗?
DBMS_OUTPUT.PUT_LINE 似乎有限
提前致谢!
PS,我尝试在循环之前使用 DBMS_OUTPUT.PUT_LINE 但它出错了:
12/1 PLS-00103:预期时遇到符号“DBMS_OUTPUT” 以下之一: 环形 符号“循环”被替换为“DBMS_OUTPUT”以继续。
20/5 PLS-00103:预期时遇到符号“NUMOFSUPPLIER” 以下之一: 循环
尝试时出错:
OUTPUT VARCHAR(500);
BEGIN
FOR supplerTable IN (SELECT R_NAME, N_NAME
FROM SUPPLIER join NATION on S_NATIONKEY = N_NATIONKEY
join REGION on N_REGIONKEY = R_REGIONKEY
GROUP BY R_NAME, N_NAME
HAVING COUNT (S_NATIONKEY) > X)
DBMS_OUTPUT.PUT_LINE ('HELLO');
LOOP
DBMS_OUTPUT.PUT_LINE (supplerTable.R_NAME || supplerTable.N_NAME);
END LOOP;
END numOfSupplier;
/
【问题讨论】:
-
为什么不在循环前使用
DBMS_OUTPUT.PUT_LINE打印标题? -
我试过了,出错了,但似乎每个程序只能有 1 个 DBMS_OUTPUT.PUT_LINE? ----------- 12/1 PLS-00103:在预期以下情况之一时遇到符号“DBMS_OUTPUT”:循环符号“循环”被替换为“DBMS_OUTPUT”以继续。 ///////// 20/5 PLS-00103:在预期以下情况之一时遇到符号“NUMOFSUPPLIER”:循环
-
"但您似乎只能拥有 1 个 DBMS_OUTPUT.PUT_LINE" -- 不,您一定是搞错了。可能会显示您尝试过的代码。
-
我已经更新了原帖,非常感谢您的帮助!
标签: sql stored-procedures procedure stored-functions