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

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

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

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

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

    [ 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
    .




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

    [ 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
    .


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

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

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

    select deptno, empno, ename
    from emp

    where empno = '7788';
    如果拷貝到sql*plus中執(zhí)行, 就會(huì)出現(xiàn)錯(cuò)誤:


    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遇到空行就認(rèn)為是語句結(jié)束了.
    其實(shí)要改變這種現(xiàn)象, 只要使用SQLBLANKLINES參數(shù)就可以了
    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>
    (需要引用, 請(qǐng)注明出處: http://blog.itpub.net/oldwain)

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

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

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

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

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


    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>
    (需要引用, 請(qǐng)注明出處: http://blog.itpub.net/oldwain)


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

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

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

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

    												代碼:

    [ 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, 當(dāng)在屏幕上輸出的時(shí)候, 我們看不出與不加spool on有什么區(qū)別,
    但是當(dāng)我們使用spool filename 輸出到文件的時(shí)候, 會(huì)看到spool文件中出現(xiàn)了<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文件的內(nèi)容:

    												代碼:

    < 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

    現(xiàn)在看看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文件的內(nèi)容:

    												代碼:

    ">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文件頭, 所以我們可以直接作為內(nèi)容插入到網(wǎng)頁中.

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

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

    適用場(chǎng)景: 當(dāng)需要定時(shí)更新一個(gè)從數(shù)據(jù)庫中獲取內(nèi)容的靜態(tài)頁面時(shí), 這種方法絕對(duì)是快捷的并且容易實(shí)現(xiàn)的.

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

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲AV无码成人网站久久精品大| 18女人毛片水真多免费| 国产成人亚洲午夜电影| 免费看片A级毛片免费看| 18禁网站免费无遮挡无码中文| 免费无遮挡无码永久视频| 久久青草国产免费观看| 一级毛片成人免费看免费不卡| 久久精品成人免费观看| 99视频在线免费| 亚洲网站免费观看| 日韩不卡免费视频| 女人被免费视频网站| 国产男女猛烈无遮挡免费视频网站 | 亚洲国产一二三精品无码| 亚洲韩国精品无码一区二区三区 | 国产精品自在自线免费观看| 国产hs免费高清在线观看| 免费少妇a级毛片| 国产AV无码专区亚洲AV漫画| 国产成人无码综合亚洲日韩| 亚洲经典在线中文字幕| 亚洲熟妇av午夜无码不卡| 亚洲a∨无码一区二区| 日韩在线观看免费完整版视频| 亚洲人成综合网站7777香蕉| 亚洲精品无码久久久久YW| 色屁屁在线观看视频免费| 亚洲七久久之综合七久久| 羞羞的视频在线免费观看| 中文字幕不卡免费高清视频| 少妇人妻偷人精品免费视频 | 成人免费网站久久久| 久久青草免费91观看| 免费毛片在线看片免费丝瓜视频| 国产又大又长又粗又硬的免费视频| 久久久久亚洲AV成人网人人网站 | 亚洲国产精品免费视频| 亚洲综合av一区二区三区| 一级毛片完整版免费播放一区| 日韩精品免费视频|