[英]PL/SQL anonymous block completed with no result displayed
當我執行程序時,nth 會出現,除了以下消息並且不顯示任何不應該出現的輸出:匿名塊已完成
我嘗試set serveroutput on size 50000
,但沒有任何變化。
這是我的 PL/SQL 過程,不確定我是否做得對。
CREATE OR REPLACE PROCEDURE verify AS
empnum NUMBER;
empname VARCHAR2(50);
fail EXCEPTION;
BEGIN
SELECT employee.e#, employee.name INTO empnum, empname
FROM employee
JOIN driver ON driver.e# = employee.e#
JOIN mechanic ON mechanic.e# = driver.e#
WHERE rownum = 1;
EXCEPTION
WHEN no_data_found THEN
dbms_output.put_line('ok');
RAISE fail;
END verify;
/
我試圖在使用 sql 語句中實現以下結果:
SELECT employee.e#, employee.name
FROM employee
JOIN driver ON driver.e# = employee.e#
JOIN mechanic ON mechanic.e# = driver.e#
WHERE rownum = 1;
因此,如果有任何類似的記錄,它將顯示員工姓名和編號。 如果沒有找到類似的記錄,它將顯示一條ok
消息。
添加 dbms_out_put.put_line(empnum||empname); 在例外之前。 試試看/
您只是將列值選擇到變量中而不顯示它們。 使用DBMS_OUTPUT.put_line('Empnum: '|| empnum||' Empname: '||empname);
就在 Select 語句之后。
您能否指出您用於引發異常的 FAIL 變量。 我們可以在不使用這個變量的情況下做到這一點。 這是參考程序。請嘗試讓我們知道它是否有效。 謝謝
CREATE or REPLACE PROCEDURE av_sp_test(salary_var_1 in number)
AS
name_var avrajit.name%type;
salary_var avrajit.salary%type;
fail exception;
BEGIN
SELECT name,salary into name_var,salary_var from avrajit
WHERE salary=salary_var_1;
dbms_output.put_line('name is'||' '||name_var||' '||'salary is'||' '||salary_var);
EXCEPTION WHEN no_data_found THEN
dbms_output.put_line('OK');
END av_sp_test;
--------------------------------------------------
I have taken an input variable just to show diffrenet criterias.
begin
av_sp_test(1000);
end;
---------------------------------------------------
name is Sushil salary is 1000
Statement processed.
0.01 seconds
---------------------------------------------------
begin
av_sp_test(2000);
end;
---------------------------------------------------
OK
Statement processed.
0.00 seconds
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.