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

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

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

    posts - 22,comments - 35,trackbacks - 0

    SQL*Plus系統環境變量有哪些?如何修改?

     
    實現方法:
           show和set命令是兩條用于維護SQL*Plus系統變量的命令

           SQL> show all    --查看所有68個系統變量值

           SQL> show user    --顯示當前連接用戶

           SQL> show error                --顯示錯誤

           SQL> set heading off   --禁止輸出列標題,默認值為ON

           SQL> set feedback off   --禁止顯示最后一行的計數反饋信息,默認值為"對6個或更多的記錄,回送ON"

           SQL> set timing on   --默認為OFF,設置查詢耗時,可用來估計SQL語句的執行時間,測試性能

           SQL> set sqlprompt "SQL> "  --設置默認提示符,默認值就是"SQL> "

           SQL> set linesize 1000   --設置屏幕顯示行寬,默認100

           SQL> set autocommit ON   --設置是否自動提交,默認為OFF

           SQL> set pause on   --默認為OFF,設置暫停,會使屏幕顯示停止,等待按下ENTER鍵,再顯示下一頁

           SQL> set arraysize 1   --默認為15

           SQL> set long 1000   --默認為80

           說明:
           long值默認為80,設置1000是為了顯示更多的內容,因為很多數據字典視圖中用到了long數據類型,如:

    SQL> desc user_views
     列名                          可空值否   類型
     ------------------------------- -------- ----
     VIEW_NAME                       NOT NULL VARCHAR2(30)
     TEXT_LENGTH                              NUMBER
     TEXT                                     LONG

    SQL> define a = '''20000101 12:01:01'''         --定義局部變量,如果想用一個類似在各種顯示中所包括的回車那樣的常量,
                                                    --可以用define命令來設置
    SQL> select &a from dual;
    原值    1: select &a from dual
    新值    1: select '20000101 12:01:01' from dual

    '2000010112:01:01
    -----------------
    20000101 12:01:01
    ---------------------------------------------------------
    Oracle中如何實現某一字段自動增加1?

     

    實現方法:
    建立一個最小為1,最大為999999999的一個序列號會自動循環的序列

    create sequence 序列名
    increment by 1
    start with 1
    maxvalue 999999999
    cycle;

    當向表中插入數據時,SQL語句寫法如下:

    SQL> insert into 表名 values(序列名.nextval,列1值,列2值);
    ----------------------------------------------------------------
    如何用SQL生成SQL批處理文件?


    問題提出:
    1.用戶需要對數據庫用戶下的每一張表都執行一個相同的SQL操作,這時,一遍、一遍的鍵入SQL語句是很麻煩的

    實現方法:
    SQL> set heading off    --禁止輸出列標題
    SQL> set feedback off    --禁止顯示最后一行的計數反饋信息

    列出當前用戶下所有同義詞的定義,可用來測試同義詞的真實存在性
    select 'desc '||tname from tab where tabtype='SYNONYM';

    查詢當前用戶下所有表的記錄數
    select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';

    把所有符合條件的表的select權限授予為public
    select 'grant select on '||table_name||' to public;' from user_tables where 《條件》;

    刪除用戶下各種對象
    select 'drop '||tabtype||' '||tname from tab;

    刪除符合條件用戶
    select 'drop user '||username||' cascade;' from all_users where user_id>25;

    快速編譯所有視圖
    ----當在把數據庫倒入到新的服務器上后(數據庫重建),需要將視圖重新編譯一遍,
    ----因為該表空間視圖到其它表空間的表的連接會出現問題,可以利用PL/SQL的語言特性,快速編譯。

    SQL> SPOOL ON.SQL
    SQL> SELECT'ALTER VIEW '||TNAME||' COMPILE;' FROM TAB;
    SQL> SPOOL OFF
    然后執行ON.SQL即可。
    SQL> @ON.SQL
    當然,授權和創建同義詞也可以快速進行,如:
    SQL> SELECT 'GRANT SELECT ON '||TNAME||' TO 用戶名;' FROM TAB;
    SQL> SELECT 'CREATE SYNONYM '||TNAME||' FOR 用戶名.'||TNAME||';' FROM TAB;
    ---------------------------------------------------------------------

    如何刪除表中的列?


    實現方法:
    SQL> create table t2 as select <specific columns> from t1;  --以第一個表中的某列建立第二個新表

    SQL> drop table t1;                      --刪除表1

    SQL> rename t2 to t1;                     --把表2改名為表1

    Oracle 8i及以上版本中,可以使用以下語句

    SQL> alter table 表1 drop column 列1;
    -------------------------------------------------
    如何自動生成一個含有20000101至20500101共50年日期的表?


    SQL語句:
     drop table da_yyyymmdd;                --如果有,先刪除此表
    create table da_yyyymmdd(rq char(8) PRIMARY KEY);    --建立表,rq(日期)為主關鍵字

    declare
        i number;         --循環用
        j char(8);        --記錄日期值
    begin
        j:='20000101';                         --設初始值
        for i in 1..18250 loop                     --365*50=600天
        insert into da_yyyymmdd values(j);               --insert記錄
        j:=to_char(to_date(j,'yyyymmdd')+1,'yyyymmdd');        --日期加1天
        end loop;                           --循環結束
    end;
    /
    commit;                --提交,PL/SQL塊不自動提交

     

     

     

     

     

     
     

     

     

     

     

     


     


     

     

    posted on 2006-03-16 16:33 kelven 閱讀(285) 評論(0)  編輯  收藏 所屬分類: DataBase
    主站蜘蛛池模板: 亚洲暴爽av人人爽日日碰| 男人扒开添女人下部免费视频| 麻豆视频免费播放| 亚洲国产精品99久久久久久| 亚洲av无码成人精品区| 日韩视频在线观看免费| 四虎亚洲精品高清在线观看| 亚洲精品国精品久久99热| 午夜免费福利视频| 亚洲国产欧美一区二区三区| 亚洲综合伊人久久综合| 中文字幕影片免费在线观看| 无码日韩人妻AV一区免费l| 内射干少妇亚洲69XXX| 日本大片在线看黄a∨免费| 最好免费观看高清在线| 国产成人亚洲综合一区| 亚洲日韩精品无码一区二区三区 | 久久精品国产亚洲av品善| 国产AV无码专区亚洲AV毛网站 | 国产成人亚洲综合无码精品| 久久久www成人免费毛片| 国产啪精品视频网站免费尤物| 亚洲午夜理论片在线观看| 久久精品国产亚洲夜色AV网站| 四虎免费在线观看| 美女视频黄的免费视频网页| 国产AV无码专区亚洲AV麻豆丫| 久久亚洲美女精品国产精品 | 亚洲综合一区国产精品| 无码欧精品亚洲日韩一区| 又粗又大又硬又爽的免费视频 | 久久久亚洲精品蜜桃臀| 女人18毛片特级一级免费视频| 四虎成人精品永久免费AV| 一进一出60分钟免费视频| 亚洲国产无线乱码在线观看 | 免费无码又爽又刺激网站直播 | 亚洲国产成人久久精品app | 99亚洲乱人伦aⅴ精品| 国产成人精品日本亚洲专一区|