<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 :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    SQLPlus中的COPY指令學習
    ?
    ??? 最近看同事操作數據庫,用到了copy命令,驚嘆自己之前竟然不知道。趕緊看了一下,雖然這么命令很簡單,但是確實是很有用。
    ?
    ?
    ??? 首先看一下文檔里的語法定義:
    COPY {FROM database | TO database | FROM database TO database}{APPEND|CREATE|INSERT|REPLACE} destination_table [(column, column, column, ...)]USING query
    ?
    ??? 下面對語法逐一說明:
    ?
    1、DATABASE
    ?
    ??? database 對應以下的語法格式是:username[/password]@connect_identifier
    ?
    ??? 注意:如果不加密碼,則sqlplus會提示你輸入密碼。考慮到安全性,則應該不寫密碼。
    ?
    2、FROM|TO子句
    ?
    ??? 可以注意到,在這個語法里,FROM 和 TO 兩個子句都是可以單獨出現的(當然一起出現是最常見的情況)。當沒有指定 FROM/TO 子句,則使用當前連接的數據庫。
    ?
    ??? 無論是 FROM 還是 TO 子句中連接的數據庫,都不能是 SYSDBA 或 SYSOPER 權限的用戶。
    ?
    3、COPY類型
    ?
    ??? APPEND
    ??? --表存在則INSERT,不存在則CREATE
    ??? Inserts the rows from query into destination_table if the table exists. If destination_table does not exist, COPY creates it.

    ??? CREATE
    ??? --新建一個表,如果表存在則出錯
    ??? Inserts the rows from query into destination_table after first creating the table. If destination_table already exists, COPY returns an error.
    ??? INSERT
    ??? --向表中插入記錄
    ??? Inserts the rows from query into destination_table. If destination_table does not exist, COPY returns an error. When using INSERT, the USING query must select one column for each column in destination_table.
    ??? REPLACE
    ??? --無論表是否存在,均清空然后CREATE
    ??? Replaces destination_table and its contents with the rows from query. If destination_table does not exist, COPY creates it. Otherwise, COPY drops the existing table and replaces it with a table containing the copied data.
    ?
    4、destination_table
    ?
    ??? 注意指定目標表的同時,是可以指定其字段的,但是其字段數目和類型(如果已經存在)必須與后面的query中相一致,否則報錯。
    ?
    ------------------------------------
    ?
    ??? 下面舉例說明:
    ?
    SQL> COPY FROM HR/HR @HQ TO JOHN/kkk @WEST REPLACE WESTEMPLOYEES USING SELECT * FROM EMPLOYEES;
    ?
    ??? 別的沒什么可說的,但是要注意如果使用新建表的時候,新建的表的字段屬性,都是與原表相同的。在一般的情況下這都是沒有什么問題的,但是會有一種比較特殊的情況,就是例如:原始庫的字符集為ZHS16GBK,而目標庫的字符集為UTF-8,因為UTF-8中一個漢字占3個字節,而ZHS16GBK是2個。所以當原始庫中的一個屬性為varchar2(2)且為一個漢字的字段,就無法導入到UTF-8庫中了,會報錯:ORA-12899: value too large for column ...
    ?
    ??? 遇到這種情況,建議修改原始庫的字段屬性,如果沒有權限,則可以在目標庫中手工建立一下表,將字段屬性調整到合適,然后使用INSERT或者APPEND類型COPY。
    ?
    ??? 另注:select * from nls_database_parameters; 查看字符集
    ?
    ?
    ?
    ?
    posted on 2009-05-23 23:10 decode360 閱讀(1239) 評論(0)  編輯  收藏 所屬分類: 05.SQL
    主站蜘蛛池模板: 国产成人亚洲综合无码| 亚洲精品色婷婷在线影院| 久久精品国产亚洲AV电影| 久久久久久成人毛片免费看| 亚洲桃色AV无码| 无码国产精品一区二区免费vr | 日韩免费一区二区三区| 亚洲欧好州第一的日产suv| 午夜免费福利在线| 综合一区自拍亚洲综合图区| 四虎影库久免费视频| 又黄又大的激情视频在线观看免费视频社区在线 | 久久综合图区亚洲综合图区| 青青青国产手机频在线免费观看| 久久精品国产96精品亚洲| 99久久99热精品免费观看国产 | 国产.亚洲.欧洲在线| 日韩a级毛片免费观看| 九九综合VA免费看| 亚洲国产精品无码久久久不卡| 国产成人AV片无码免费| 亚洲校园春色小说| 日韩免费观看视频| 成年免费a级毛片免费看无码| 亚洲av日韩av高潮潮喷无码| 国产在线jyzzjyzz免费麻豆| 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 国产V亚洲V天堂无码| 国产精品视频免费| 美女免费视频一区二区三区| 亚洲精品国产精品乱码在线观看 | 亚洲人成在线中文字幕| 久久精品国产亚洲av日韩| 久久久亚洲欧洲日产国码是AV| 337p欧洲亚洲大胆艺术| 亚洲无圣光一区二区| 亚洲av无码电影网| 亚洲av永久无码一区二区三区| 亚洲小说图区综合在线| 国产亚洲女在线线精品| 七次郎成人免费线路视频 |