我正在使用下面的代碼按預期輸出:
DECLARE
v_ins_param VARCHAR2(10);
CURSOR c_ins_param IS
SELECT status
FROM v$instance;
BEGIN
OPEN c_ins_param;
LOOP
FETCH c_ins_param INTO v_ins_param;
EXIT WHEN c_ins_param%NOTFOUND;
--
--
--
IF v_ins_param = 'OPEN' THEN
DBMS_OUTPUT.PUT_LINE('
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || '
Great! Your database is up.
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || ' ');
ELSIF v_ins_param = 'MOUNTED' THEN
DBMS_OUTPUT.PUT_LINE('
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || '
Database is only mounted.
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || '
');
ELSE
DBMS_OUTPUT.PUT_LINE('
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || '
Database is neither mounted or open.
' || CHR(35) || '' || CHR(35) ||'' || CHR(35) || '
');
END IF;
END LOOP;
CLOSE c_ins_param;
END;
/
這是它會給你的“種類”輸出:
###
Great! Your database is up.
###
最終,這將是一系列匿名塊“鍵入”腳本,例如我想輸出到單個檔案的腳本。
我現在正試圖讓輸出僅在 html 輸出中提供文本資訊。我在另一頁上看到了這一點,并將其改編為我的代碼,看看它是如何作業的:
spool c:mag.html
DECLARE
CURSOR c1 IS
SELECT * FROM dept;
BEGIN
DBMS_OUTPUT.PUT_LINE('< pre >');
DBMS_OUTPUT.PUT_LINE('< h1 >Report on Databases</h1>');
FOR mag IN c1
LOOP
EXIT WHEN c1%notfound;
DBMS_OUTPUT.PUT_LINE('< b >Department Name[/b] =' || mag.dname);
END LOOP;
END;
/
然而這樣做的方式,使用:
mag.dname
不適用于我的“非 for 回圈”示例。
我覺得必須有一種更合適的方式來實作輸出。我努力了:
設定標記html
它不僅回傳影響輸出,還影響所有代碼。
有沒有人嘗試過這個,也許知道我如何獲得回傳資料的 html 輸出?
uj5u.com熱心網友回復:
這是一個示例-我將以下內容存盤在名為(例如)scr.sql 的腳本中
set termout off
set feedback off
set serverout on
begin
for i in (
select
case
when status = 'OPEN' then '<p>Database is open</p>'
when status = 'MOUNTED' then '<p>Database is mounted</p>'
else '<p>Database is not happy</p>'
end status_output
from v$instance
)
loop
dbms_output.put_line(i.status_output);
end loop;
end;
.
spool /tmp/status.html
/
spool off
然后從 SQLPlus 作為
SQL> @scr.sql
我得到的status.html唯一是
<p>Database is open</p>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422495.html
標籤:
