<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
    轉載自:
    http://www.itpub.net/viewthread.php?tid=424236&extra=page%3D1%26amp%3Bfilter%3Ddigest
    ?
    ?
    ?
    1、顯示空格
    ?
    有沒有為了dbms_output.put_line會"吃掉"最前面的空格而苦惱?
    ?
    SQL> set serveroutput on
    SQL> exec dbms_output.put_line('?? abc');
    abc
    ?
    PL/SQL procedure successfully completed.
    ?
    ?
    (俺以前曾經很苦惱為了保留空格, 嘗試了加".", 加不可見字符等辦法, 不過終究覺得不自然)
    實際上, 只要在set serveroutput on后加上format wrapped參數, 就可以避免這個問題
    ?
    SQL> set serveroutput on format wrapped
    SQL> exec dbms_output.put_line('?? abc');
    ?? abc
    ?
    PL/SQL procedure successfully completed.
    ?
    ?
    ?
    2、SQL語句中的空行
    ?
    Sql*plus中, 不允許sql語句中間有空行, 這在從其它地方拷貝腳本到sql*plus中執行時很麻煩. 比如下面的腳本:
    ?
    select deptno, empno, ename
    from emp
    ?
    where empno = '7788';
    如果拷貝到sql*plus中執行, 就會出現錯誤:
    ?

    SQL> select deptno, empno, ename
    ? 2? from emp
    ? 3
    SQL> where empno = '7788';
    SP2-0734: unknown command beginning "where empn..." - rest of line ignored.
    ?
    原因是sqlplus遇到空行就認為是語句結束了.
    其實要改變這種現象, 只要使用SQLBLANKLINES參數就可以了.
    ?
    SQL> SET SQLBLANKLINES ON
    SQL>
    select deptno, empno, ename
    ? 2? from emp
    ? 3
    ? 4? where empno = '7788';
    ?
    ??? DEPTNO????? EMPNO ENAME
    ---------- ---------- ----------
    ??????? 20?????? 7788 SCOTT
    ?
    ?
    ?
    3、 # 的應用
    ?
    ?
    ??? 有沒有過這樣的經歷? 在sql*plus中敲了很長的命令后, 突然發現想不起某個列的名字了, 如果取消當前的命令,待查詢后再重敲, 那太痛苦了. 當然你可以另開一個sql*plus窗口進行查詢, 但這里提供的方法更簡單。這種情況下, 只要在下一行以#開頭, 就可以執行一條sql*plus命令, 執行完后, 剛才的語句可以繼續輸入
    ?

    SQL> select deptno,
    ? 2? empno,
    ? 3? ename
    ? 4? from emp
    ? 5? where
    ? 6? #desc emp
    ?Name????????????????????????????????????? Null???? Type
    ?----------------------------------------- -------- --------------
    ?
    ?EMPNO???????????????????????????????????? NOT NULL NUMBER(4)
    ?ENAME????????????????????????????????????????????? VARCHAR2(10)
    ?JOB??????????????????????????????????????????????? VARCHAR2(9)
    ?MGR??????????????????????????????????????????????? NUMBER(4)
    ?HIREDATE?????????????????????????????????????????? DATE
    ?SAL??????????????????????????????????????????????? NUMBER(7,2)
    ?COMM?????????????????????????????????????????????? NUMBER(7,2)
    ?DEPTNO???????????????????????????????????????????? NUMBER(2)
    ?
    ? 6? sal > 4000;
    ?
    ??? DEPTNO????? EMPNO ENAME
    ---------- ---------- ----------
    ??????? 10?????? 7839 KING
    ?
    ?
    ?
    ?
    4、以html格式展現輸出

    ?
    sql*plus中有一個set markup html的命令, 可以將sql*plus的輸出以html格式展現
    ?

    SQL> set markup html on spool on
    SQL&gt; select empno, ename from emp where rownum<3;

    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script output'>
    <tr>
    <th scope="col">
    EMPNO
    </th>
    <th scope="col">
    ENAME
    </th>
    </tr>
    <tr>
    <td align="right">
    7369
    </td>
    <td>
    SMITH
    </td>
    </tr>
    <tr>
    <td align="right">
    7499
    </td>
    <td>
    ALLEN
    </td>
    </tr>
    </table>
    <p>
    ?
    SQL&gt;

    注意其中的spool on, 當在屏幕上輸出的時候, 我們看不出與不加spool on有什么區別, 但是當我們使用spool filename 輸出到文件的時候, 會看到spool文件中出現了<html><body>等tag.
    ?
    SQL&gt; spool?c:\emp.htm
    <br>
    SQL&gt; /
    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script output'>
    ... ...
    ?
    SQL&gt; spool off
    <br>

    查看生成的emp.htm文件的內容:
    ?
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=WINDOWS-936">
    <meta name="generator" content="SQL*Plus 9.2.0">
    <style type='text/css'> body {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-serif; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-serif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; background:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; margin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Arial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-top:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#663300; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</style><title>SQL*Plus Report</title>
    </head>
    <body>
    SQL&gt; /
    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script output'>
    <tr>
    <th scope="col">
    EMPNO
    </th>
    <th scope="col">
    ENAME
    </th>
    </tr>
    <tr>
    <td align="right">
    7369
    </td>
    <td>
    SMITH
    </td>
    </tr>
    <tr>
    <td align="right">
    7499
    </td>
    <td>
    ALLEN
    </td>
    </tr>
    </table>
    <p>
    ?
    SQL&gt; spool off
    <br>
    </body>
    </html>
    ?
    用ie打開emp.htm文件后的樣式如下:
    ?
    ? sqlplus-html.jpg
    ?
    ?
    現在看看spool off的情況下:
    ?
    SQL&gt; set markup html on spool off
    <br>
    SQL&gt; spool c:\emp2.htm
    <br>
    SQL&gt; /
    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script outpu
    ... ...
    SQL&gt; spool off
    <br>
    ?
    查看生成的emp2.htm文件的內容:
    ?
    SQL&gt; /
    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script output'>
    <tr>
    <th scope="col">
    EMPNO
    </th>
    <th scope="col">
    ENAME
    </th>
    </tr>
    <tr>
    <td align="right">
    7369
    </td>
    <td>
    SMITH
    </td>
    </tr>
    <tr>
    <td align="right">
    7499
    </td>
    <td>
    ALLEN
    </td>
    </tr>
    </table>
    <p>
    ?
    SQL&gt; spool off
    ?
    由于這段代碼中沒有html文件頭, 所以我們可以直接作為內容插入到網頁中

    總結: 如果要生成一個完整的html文件, 就使用spool on選項, 如果只是要內容部分(用來添加到一個現有的網頁中), 那么就使用spool off選項.
    ?
    另外, set markup html還有很多選項可以用來定制生成的html的各個部分, 例如head, body, table等, 這里不再逐一說明, 詳細信息可以參考SQL*Plus User's Guide and Reference.
    ?
    適用場景: 當需要定時更新一個從數據庫中獲取內容的靜態頁面時, 這種方法絕對是快捷的并且容易實現的.




    -The End-

    posted on 2008-12-30 20:01 decode360-3 閱讀(230) 評論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 亚洲精品色午夜无码专区日韩| 毛茸茸bbw亚洲人| 免费看国产成年无码AV片| 久久WWW免费人成人片| 亚洲妇女水蜜桃av网网站| 亚洲色偷偷偷综合网| 一道本不卡免费视频| 无码人妻久久一区二区三区免费 | 成年女人视频网站免费m| 免费观看午夜在线欧差毛片| 亚洲精品无码AV人在线播放 | 免费夜色污私人影院网站| 老汉精品免费AV在线播放| 免费看无码自慰一区二区| 亚洲区小说区激情区图片区| 亚洲一卡一卡二新区无人区| 四虎www免费人成| 亚洲美女视频一区| 九九久久精品国产免费看小说| 亚洲一区视频在线播放| 国产精品亚洲lv粉色| 最近中文字幕国语免费完整| 亚洲无码黄色网址| 成在人线av无码免费高潮喷水 | 夜夜春亚洲嫩草影院| 国产精品亚洲а∨天堂2021| 黄+色+性+人免费| 久久亚洲一区二区| 亚洲黄片手机免费观看| 免费亚洲视频在线观看| 亚洲情A成黄在线观看动漫软件| 99久久免费看国产精品| 亚洲一卡2卡三卡4卡无卡下载| 亚洲性日韩精品一区二区三区| 日韩精品内射视频免费观看| 亚洲色大成WWW亚洲女子| 精品亚洲一区二区三区在线播放 | 国产成人综合亚洲一区| 亚洲AV乱码一区二区三区林ゆな| 成年免费大片黄在线观看岛国| 亚洲一区动漫卡通在线播放|