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

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

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

    隨筆-88  評論-77  文章-48  trackbacks-0
    也許你還不知道 - sqlplus的小秘密(1)
    ===========================================================
    作者: oldwain(
    http://blog.itpub.net/oldwain )
    發表于:2005.09.05 15:09
    分類:
    出處:
    http://blog.itpub.net/post/6/40158
    ---------------------------------------------------------------

    有沒有為了dbms_output.put_line會"吃掉"最前面的空格而苦惱?
    						代碼:

    [ email ] scott @ O9I . US . ORACLE . COM [/ email ]> set serveroutput on
    [ email ] scott @ O9I . US . ORACLE . COM [/ email ]> exec dbms_output . put_line ( '???abc'
    );
    abc

    PL
    / SQL procedure successfully completed
    .




    (俺以前曾經很苦惱為了保留空格, 嘗試了加".", 加不可見字符等辦法, 不過終究覺得不自然)
    實際上, 只要在set serveroutput on后加上format wrapped參數, 就可以避免這個問題
    						代碼:

    [ email ] scott @ O9I . US . ORACLE . COM [/ email ]> set serveroutput on format wrapped
    [ email ] scott @ O9I . US . ORACLE . COM [/ email ]> exec dbms_output . put_line ( '???abc'
    );
    ???
    abc

    PL
    / SQL procedure successfully completed
    .


    (需要引用, 請注明出處: http://blog.itpub.net/oldwain )

    也許你還不知道 - sqlplus的小秘密(2)
    ===========================================================
    作者: oldwain(http://blog.itpub.net/oldwain)
    發表于:2005.09.06 10:06
    分類:
    出處:http://blog.itpub.net/post/6/40252
    ---------------------------------------------------------------

    Sql*plus中, 不允許sql語句中間有空行, 這在從其它地方拷貝腳本到sql*plus中執行時很麻煩. 比如下面的腳本:

    select deptno, empno, ename
    from emp

    where empno = '7788';
    如果拷貝到sql*plus中執行, 就會出現錯誤:


    scott@O9I.US.ORACLE.COM> select deptno, empno, ename
    2 from emp
    3
    scott@O9I.US.ORACLE.COM> where empno = '7788';
    SP2-0734: unknown command beginning "where empn..." - rest of line ignored.
    scott@O9I.US.ORACLE.COM>

    原因是sqlplus遇到空行就認為是語句結束了.
    其實要改變這種現象, 只要使用SQLBLANKLINES參數就可以了
    scott@O9I.US.ORACLE.COM> SET SQLBLANKLINES ON
    scott@O9I.US.ORACLE.COM>
    scott@O9I.US.ORACLE.COM> select deptno, empno, ename
    2 from emp
    3
    4 where empno = '7788';

    DEPTNO EMPNO ENAME
    ---------- ---------- ----------
    20 7788 SCOTT

    scott@O9I.US.ORACLE.COM>
    (需要引用, 請注明出處: http://blog.itpub.net/oldwain)

    也許你還不知道 - sqlplus的小秘密(3)
    ===========================================================
    作者: oldwain(http://blog.itpub.net/oldwain)
    發表于:2005.09.07 10:04
    分類:
    出處:http://blog.itpub.net/post/6/40364
    ---------------------------------------------------------------

    有沒有過這樣的經歷? 在sql*plus中敲了很長的命令后, 突然發現想不起某個列的名字了, 如果取消當前的命令,待查詢后再重敲, 那太痛苦了. 當然你可以另開一個sql*plus窗口進行查詢, 但這里提供的方法更簡單.

    比如說, 你想查工資大于4000的員工的信息, 輸入了下面的語句:

    scott@O9I.US.ORACLE.COM> select deptno,
    2 empno,
    3 ename
    4 from emp
    5 where
    這時, 你發現你想不起來工資的列名是什么了.

    這種情況下, 只要在下一行以#開頭, 就可以執行一條sql*plus命令, 執行完后, 剛才的語句可以繼續輸入


    scott@O9I.US.ORACLE.COM> 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

    scott@O9I.US.ORACLE.COM>
    (需要引用, 請注明出處: http://blog.itpub.net/oldwain)


    也許你還不知道 - sqlplus的小秘密(4)
    ===========================================================
    作者: oldwain(
    http://blog.itpub.net/oldwain )
    發表于:2005.09.08 12:54
    分類:
    出處:
    http://blog.itpub.net/post/6/40485
    ---------------------------------------------------------------

    也許你還不知道 - sqlplus的小秘密(4)

    這個也許不算什么秘密, 很多人大概都知道, 不過用過的人也許不多.

    在8.1.7版本(也許是816? 不太確定)以后, sql*plus中有一個set markup html的命令, 可以將sql*plus的輸出以html格式展現.

    												代碼:

    [ email ] scott @ O9I . US . ORACLE . COM [/ email ]> set markup html on spool on
    ">scott@O9I.US.ORACLE.COM&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>"
    > scott @ O9I . US . ORACLE . COM & gt
    ;


    注意其中的spool on, 當在屏幕上輸出的時候, 我們看不出與不加spool on有什么區別,
    但是當我們使用spool filename 輸出到文件的時候, 會看到spool文件中出現了<html><body>等tag.

    												代碼:

    ">scott@O9I.US.ORACLE.COM&gt; spool c:emp.htm
    <br>
    "
    > scott @ O9I . US . ORACLE . COM & gt
    ; /
    <
    br
    >
    <
    p
    >
    <
    table border = '1' width = '90%' align = 'center' summary = 'Script output'
    >
    ......
    此處省略

    ">scott@O9I.US.ORACLE.COM&gt; spool off



    查看生成的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
    >
    ">scott@O9I.US.ORACLE.COM&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>

    "
    > scott @ O9I . US . ORACLE . COM & gt ;
    spool off
    < br
    >
    </
    body
    >
    </
    html
    >


    用ie打開emp.htm文件后的樣式如下:

    http://blog.itpub.net/resserver.php?blogId=6&resource=sqlplushtml.JPG

    現在看看spool off的情況下:

    												代碼:

    ">scott@O9I.US.ORACLE.COM&gt; set markup html on spool off
    <br>
    "
    > scott @ O9I . US . ORACLE . COM & gt ; spool c : emp2 .
    htm
    < br
    >
    ">scott@O9I.US.ORACLE.COM&gt; /
    <br>
    <p>
    <table border='1' width='90%' align='center' summary='Script outpu
    ......此處省略
    "
    > scott @ O9I . US . ORACLE . COM & gt ;
    spool off
    < br
    >
    ">scott@O9I.US.OR


    查看生成的emp2.htm文件的內容:

    												代碼:

    ">scott@O9I.US.ORACLE.COM&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>

    "
    > scott @ O9I . US . ORACLE . COM & gt ;

    																				代碼:



    由于這段代碼中沒有html文件頭, 所以我們可以直接作為內容插入到網頁中.

    總結: 如果要生成一個完整的html文件, 就使用spool on選項, 如果只是要內容部分(用來添加到一個現有的網頁中), 那么就使用spool off選項.

    另外, set markup html還有很多選項可以用來定制生成的html的各個部分, 例如head, body, table等, 這里不再逐一說明, 詳細信息可以參考SQL*Plus User's Guide and Reference.

    適用場景: 當需要定時更新一個從數據庫中獲取內容的靜態頁面時, 這種方法絕對是快捷的并且容易實現的.

    (需要引用, 請注明出處:
    http://blog.itpub.net/oldwain )

    posted on 2006-04-27 10:03 崛起的程序員 閱讀(266) 評論(0)  編輯  收藏 所屬分類: oracle

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品视频免费看| 久久免费视频网站| 最近中文字幕mv免费高清电影 | 亚洲欧美日韩国产成人| 2021在线永久免费视频| 亚洲欧洲国产经精品香蕉网| 十八禁无码免费网站| 亚洲综合小说久久另类区| 57pao国产成永久免费视频| 亚洲日本在线播放| 91在线视频免费看| 亚洲精品乱码久久久久久蜜桃图片| www.999精品视频观看免费| 亚洲日韩中文字幕无码一区| 日韩毛片无码永久免费看| 老司机午夜在线视频免费观| 色噜噜AV亚洲色一区二区| baoyu777永久免费视频| 亚洲AV无码第一区二区三区| 久久久久久毛片免费播放| 亚洲一本之道高清乱码| 免费观看大片毛片| 免费人成视频在线观看免费| 亚洲精品高清国产一线久久| 99在线观看精品免费99| 亚洲中文字幕久久精品无码A| 亚洲国产成人VA在线观看| a级毛片免费完整视频| 亚洲白色白色在线播放| 日本一道一区二区免费看 | 国产在线播放线91免费| 77777_亚洲午夜久久多人| 成人黄软件网18免费下载成人黄18免费视频 | 国产在线a免费观看| 深夜福利在线免费观看| 亚洲色大成网站WWW久久九九| 亚洲一级毛片免费观看| 日韩精品无码免费视频| 亚洲日本精品一区二区| 日韩免费福利视频| 久久一本岛在免费线观看2020|