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

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

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

    隨筆-60  評論-117  文章-0  trackbacks-0
    mysql和oracle 中針對table 的操作基本相同,但oracle中涉及用戶創建和授權的問題,它的內部函數也比較復雜。
    1) 創建用戶 :

       create user username identified by pwd default tablespace users Temporary TABLESPACE Temp;

       2) 用戶授權

       grant connect,resource,dba to business;   
         
             3) 提交

       commit;

    創建角色:
       1:CREATE ROLE role_name IDENTIFIED BY password
             CREATE ROLE role_name IDENTIFIED EXTERNALLY
             CREATE ROLE role_name IDENTIFIED GLOBALLY

             缺省情況下建立的角色沒有password或者其他的識別。如果使用IDENTIFIED BY 子句建立,那么角色不會自動響應,必須用SET ROLE激活。

    SET ROLE role_name IDENTIFIED BY password

    EXTERNALLY和GLOBALLY類型的角色由操作系統和ORACLE Service server驗證。通常用戶需要權限修改應用程序中使用的表單中的數據,但是只有在應用程序運行時而不是在使用ad hoc工具時,這種上下文敏感安全可以通過有PASSWORD的角色來實現。當用戶在應用程序內部連結數據庫時,代碼將執行SET ROLE命令,通過安全驗證。所以用戶不需要知道角色的password,也不需要自己輸入SET ROLE命令。

    對象權限

      對象權限就是指在表、視圖、序列、過程、函數或包等對象上執行特殊動作的權利。有九種不同類型的權限可以授予給用戶或角色。如下表:
    權限 ALTER DELETE EXECUTE INDEX INSERT READ REFERENCE SELECT UPDATE
    Directory no no no no no yes no no no
    function no no yes no no no no no no
    procedure no no yes no no no no no no
    package no no yes no no no no no no
    DB Object no no yes no no no no no no
    Libary no no yes no no no no no no
    Operation no no yes no no no no no no
    Sequence yes no no no no no no no no
    Table yes yes no yes yes no yes yes yes
    Type no no yes no no no no no no
    View no yes no no yes no no yes yes
     對象由不止一個權限,特殊權限ALL可以被授予或撤銷。如TABLE的ALL權限就包括:

    系統權限

      系統權限需要授予者有進行系統級活動的能力,如連接數據庫,更改用戶會話、建立表或建立用戶等等。你可以在數據字典視圖SYSTEM_PRIVILEGE_MAP上獲得完整的系統權限。對象權限和系統權限都通過GRANT語句授予用戶或角色。需要注意的是在授予對象權限時語句應該是WITH GRANT OPTION子句,但在授予系統權象時語句是WITH ADMIN OPTION,所以在你試圖授予系統權限時,使用語句WITH GRANT OPTION系統會報告一個錯誤:ONLY ADMIN OPTION can be specified。在考試中要特別注意這個語法和錯誤信息。
    內部函數:
     

    ASCII()

       c1是一字符串,返回c1第一個字母的ASCII碼,他的逆函數是CHR()

    SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122

     

      CHR(<i>)[NCHAR_CS]

       i是一個數字,函數返回十進制表示的字符

    select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z B

     

     CONCAT(,)

       c1,c2均為字符串,函數將c2連接到c1的后面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1、c2都為null,則返回null。他和操作符||返回的結果相同

    select concat('slobo ','Svoboda') username from dualusernameslobo Syoboda

     

      INITCAP()

       c1為一字符串。函數將每個單詞的第一個字母大寫其它字母小寫返回。單詞由空格,控制字符,標點符號限制。

    select INITCAP('veni,vedi,vici') Ceasar from dualCeasarVeni,Vedi,Vici

     

      INSTR(,[,<i>[,]])

       c1,c2均為字符串,i,j為整數。函數返回c2在c1中第j次出現的位置,搜索從c1的第i個字符開始。當沒有發現需要的字符時返回0,如果i為負數,那么搜索將從右到左進行,但是位置的計算還是從左到右,i和j的缺省值為1.

    select INSTR('Mississippi','i',3,3) from dualINSTR('MISSISSIPPI','I',3,3)11select INSTR('Mississippi','i',-2,3) from dualINSTR('MISSISSIPPI','I',3,3)2

     

      INSTRB(,[,i[,j])

       與INSTR()函數一樣,只是他返回的是字節,對于單字節INSTRB()等于INSTR()

     

      LENGTH()

       c1為字符串,返回c1的長度,如果c1為null,那么將返回null值。

    select LENGTH('Ipso Facto') ergo from dualergo10

     

      LENGTHb()

       與LENGTH()一樣,返回字節。

     

      lower()

       返回c的小寫字符,經常出現在where子串中

    select LOWER(colorname) from itemdetail WHERE LOWER(colorname) LIKE '%white%'COLORNAMEWinterwhite

     

      LPAD(,<i>[,])

       c1,c2均為字符串,i為整數。在c1的左側用c2字符串補足致長度i,可多次重復,如果i小于c1的長度,那么只返回i那么長的c1字符,其他的將被截去。c2的缺省值為單空格,參見RPAD。

    select LPAD(answer,7,'') padded,answer unpadded from question;PADDED UNPADDED Yes YesNO NOMaybe maybe

     

      LTRIM(,)

       把c1中最左邊的字符去掉,使其第一個字符不在c2中,如果沒有c2,那么c1就不會改變。

    select LTRIM('Mississippi','Mis') from dualLTRppi

     

      RPAD(,<i>[,])

       在c1的右側用c2字符串補足致長度i,可多次重復,如果i小于c1的長度,那么只返回i那么長的c1字符,其他的將被截去。c2的缺省值為單空格,其他與LPAD相似

    RTRIM(,)

       把c1中最右邊的字符去掉,使其第后一個字符不在c2中,如果沒有c2,那么c1就不會改變。

      REPLACE(,[,])

       c1,c2,c3都是字符串,函數用c3代替出現在c1中的c2后返回。

    select REPLACE('uptown','up','down') from dualREPLACEdowntown

     STBSTR(,<i>[,])

       c1為一字符串,i,j為整數,從c1的第i位開始返回長度為j的子字符串,如果j為空,則直到串的尾部。

    select SUBSTR('Message',1,4) from dualSUBSMess

      SUBSTRB(,<i>[,])

       與SUBSTR大致相同,只是I,J是以字節計算。

      SOUNDEX()

       返回與c1發音相似的詞

    select SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws, SOUNDEX('dawson') from dualDawes Daws DawsonD200 D200 D250

      TRANSLATE(,,)

       將c1中與c2相同的字符以c3代替

    select TRANSLATE('fumble','uf','ar') test from dualTEXTramble

      TRIM([[]] from c3)

       將c3串中的第一個,最后一個,或者都刪除。

    select TRIM(' space padded ') trim from dual TRIMspace padded

      UPPER()

       返回c1的大寫,常出現where子串中

    select name from dual where UPPER(name) LIKE 'KI%'NAMEKING

    單行數字函數

      單行數字函數操作數字數據,執行數學和算術運算。所有函數都有數字參數并返回數字值。所有三角函數的操作數和值都是弧度而不是角度,oracle沒有提供內建的弧度和角度的轉換函數。

      ABS()

       返回n的絕對值

      ACOS()

       反余玄函數,返回-1到1之間的數。n表示弧度

    select ACOS(-1) pi,ACOS(1) ZERO FROM dualPI ZERO3.14159265 0

      ASIN()

       反正玄函數,返回-1到1,n表示弧度

    ATAN()

       反正切函數,返回n的反正切值,n表示弧度。

      CEIL()

       返回大于或等于n的最小整數。

      COS()

       返回n的余玄值,n為弧度

      COSH()

       返回n的雙曲余玄值,n 為數字。

    select COSH(<1.4>) FROM dualCOSH(1.4)2.15089847

      EXP()

       返回e的n次冪,e=2.71828183.

     FLOOR()

       返回小于等于N的最大整數。

     LN()

       返回N的自然對數,N必須大于0

     LOG(,)

       返回以n1為底n2的對數

     MOD()

       返回n1除以n2的余數,

     POWER(,)

       返回n1的n2次方

      ROUND(,)

       返回舍入小數點右邊n2位的n1的值,n2的缺省值為0,這回將小數點最接近的整數,如果n2為負數就舍入到小數點左邊相應的位上,n2必須是整數。

    select ROUND(12345,-2),ROUND(12345.54321,2) FROM dualROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54

      SIGN()

       如果n為負數,返回-1,如果n為正數,返回1,如果n=0返回0.

      SIN()

       返回n的正玄值,n為弧度。

    SINH()

       返回n的雙曲正玄值,n為弧度。

      SQRT()

       返回n的平方根,n為弧度

      TAN()

       返回n的正切值,n為弧度

      TANH()

       返回n的雙曲正切值,n為弧度

      TRUNC(,)

       返回截尾到n2位小數的n1的值,n2缺省設置為0,當n2為缺省設置時會將n1截尾為整數,如果n2為負值,就截尾在小數點左邊相應的位上。

     單行日期函數

      單行日期函數操作DATA數據類型,絕大多數都有DATA數據類型的參數,絕大多數返回的也是DATA數據類型的值。

      ADD_MONTHS(,<i>)

       返回日期d加上i個月后的結果。i可以使任意整數。如果i是一個小數,那么數據庫將隱式的他轉換成整數,將會截去小數點后面的部分。

      LAST_DAY()

       函數返回包含日期d的月份的最后一天

      MONTHS_BETWEEN(,)

       返回d1和d2之間月的數目,如果d1和d2的日的日期都相同,或者都使該月的最后一天,那么將返回一個整數,否則會返回的結果將包含一個分數。

      NEW_TIME(,,)

       d1是一個日期數據類型,當時區tz1中的日期和時間是d時,返回時區tz2中的日期和時間。tz1和tz2時字符串。

    NEXT_DAY(,)

       返回日期d后由dow給出的條件的第一天,dow使用當前會話中給出的語言指定了一周中的某一天,返回的時間分量與d的時間分量相同。

    select NEXT_DAY('01-Jan-2000','Monday') "1st Monday",NEXT_DAY('01-Nov-2004','Tuesday')+7 "2nd Tuesday") from dual;1st Monday 2nd Tuesday03-Jan-2000 09-Nov-2004

      ROUND([,])

       將日期d按照fmt指定的格式舍入,fmt為字符串。

      SYADATE

       函數沒有參數,返回當前日期和時間。

      TRUNC([,])

       返回由fmt指定的單位的日期d.

    單行轉換函數

      單行轉換函數用于操作多數據類型,在數據類型之間進行轉換。

      CHARTORWID()

       c 使一個字符串,函數將c轉換為RWID數據類型。

    SELECT test_id from test_case where rowid=CHARTORWID('AAAA0SAACAAAALiAAA')

      CONVERT(,[,])

       c尾字符串,dset、sset是兩個字符集,函數將字符串c由sset字符集轉換為dset字符集,sset的缺省設置為數據庫的字符集。

      HEXTORAW()

       x為16進制的字符串,函數將16進制的x轉換為RAW數據類型。

      RAWTOHEX()

       x是RAW數據類型字符串,函數將RAW數據類轉換為16進制的數據類型。

      ROWIDTOCHAR()

       函數將ROWID數據類型轉換為CHAR數據類型。

     TO_CHAR([[,)

       x是一個data或number數據類型,函數將x轉換成fmt指定格式的char數據類型,如果x為日期nlsparm=NLS_DATE_LANGUAGE 控制返回的月份和日份所使用的語言。如果x為數字nlsparm=NLS_NUMERIC_CHARACTERS 用來指定小數位和千分位的分隔符,以及貨幣符號。

    NLS_NUMERIC_CHARACTERS ="dg", NLS_CURRENCY="string"

      TO_DATE([,[,)

       c表示字符串,fmt表示一種特殊格式的字符串。返回按照fmt格式顯示的c,nlsparm表示使用的語言。函數將字符串c轉換成date數據類型。

      TO_MULTI_BYTE()

       c表示一個字符串,函數將c的擔子截字符轉換成多字節字符。

      TO_NUMBER([,[,)

       c表示字符串,fmt表示一個特殊格式的字符串,函數返回值按照fmt指定的格式顯示。nlsparm表示語言,函數將返回c代表的數字。

      TO_SINGLE_BYTE()

       將字符串c中得多字節字符轉化成等價的單字節字符。該函數僅當數據庫字符集同時包含單字節和多字節字符時才使用

      其它單行函數

      BFILENAME(

    ,)

       dir是一個directory類型的對象,file為一文件名。函數返回一個空的BFILE位置值指示符,函數用于初始化BFILE變量或者是BFILE列。

      DECODE(,,[,,,[])

       x是一個表達式,m1是一個匹配表達式,x與m1比較,如果m1等于x,那么返回r1,否則,x與m2比較,依次類推m3,m4,m5....直到有返回結果。

      DUMP(,[,[,[,]]])

       x是一個表達式或字符,fmt表示8進制、10進制、16進制、或則單字符。函數返回包含了有關x的內部表示信息的VARCHAR2類型的值。如果指定了n1,n2那么從n1開始的長度為n2的字節將被返回。

     EMPTY_BLOB()

       該函數沒有參數,函數返回 一個空的BLOB位置指示符。函數用于初始化一個BLOB變量或BLOB列。

      EMPTY_CLOB()

       該函數沒有參數,函數返回 一個空的CLOB位置指示符。函數用于初始化一個CLOB變量或CLOB列。

      GREATEST()

       exp_list是一列表達式,返回其中最大的表達式,每個表達式都被隱含的轉換第一個表達式的數據類型,如果第一個表達式是字符串數據類型中的任何一個,那么返回的結果是varchar2數據類型,同時使用的比較是非填充空格類型的比較。

     

     LEAST()

       exp_list是一列表達式,返回其中最小的表達式,每個表達式都被隱含的轉換第一個表達式的數據類型,如果第一個表達式是字符串數據類型中的任何一個,將返回的結果是varchar2數據類型,同時使用的比較是非填充空格類型的比較。

      UID

       該函數沒有參數,返回唯一標示當前數據庫用戶的整數。

      USER

       返回當前用戶的用戶名

      USERENV()

       基于opt返回包含當前會話信息。opt的可選值為:

      ISDBA    會話中SYSDBA腳色響應,返回TRUE

       SESSIONID  返回審計會話標示符

       ENTRYID   返回可用的審計項標示符

       INSTANCE  在會話連接后,返回實例標示符。該值只用于運行Parallel 服務器并且有 多個實例的情況下使用。

       LANGUAGE  返回語言、地域、數據庫設置的字符集。

       LANG    返回語言名稱的ISO縮寫。

       TERMINAL  為當前會話使用的終端或計算機返回操作系統的標示符。

      VSIZE()

       x是一個表達式。返回x內部表示的字節數。
    posted on 2007-04-25 20:30 靜兒 閱讀(706) 評論(2)  編輯  收藏

    評論:
    # oracle到mysql??? 2007-05-14 22:42 | 余威
    我想請教你一下,我現在有一個oracle的用來專門建描述表的文件,但我只有Mysql數據庫,想問下怎么樣把這個文件導入到Mysql的庫里去啊,文件里里有很多表的描述及其選項,我不能一個個個照著改啊,謝謝啊能不能把解決方法發到我郵箱里啊yuwei4891@yahoo.com.cn
    我一直解決不了這個問題,希望你能幫我。  回復  更多評論
      
    # re: 從mysql到oracle 2007-09-11 17:26 | 與我聯系 13871017378(蘭)
    與我聯系 13871017378(蘭)  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 日韩精品无码免费专区午夜| 日日狠狠久久偷偷色综合免费| 免费人妻无码不卡中文字幕系| 亚洲午夜久久久久久久久久 | 成在人线AV无码免费| 亚洲美女视频免费| 黄色免费网站网址| 亚洲伊人精品综合在合线| 日本zzzzwww大片免费| 精品日韩99亚洲的在线发布| 亚洲免费在线视频观看| 亚洲一区二区三区免费观看| 97在线线免费观看视频在线观看| 亚洲偷自精品三十六区| 国产最新凸凹视频免费| 青青草国产免费国产是公开| 中文字幕亚洲日本岛国片| 免费毛片在线看不用播放器| 亚洲第一精品福利| 无码日韩精品一区二区免费| 阿v免费在线观看| 亚洲精品无码专区久久久| 少妇无码一区二区三区免费| 亚洲一区二区三区免费视频| 国产美女精品视频免费观看| 一区二区三区AV高清免费波多 | 亚洲人成电影在在线观看网色| 久久九九兔免费精品6| 亚洲综合精品成人| 亚洲中文字幕无码专区| 99久热只有精品视频免费看 | 亚洲国产成人资源在线软件| 日韩在线免费电影| 国产一区二区三区免费观在线| 亚洲日本在线播放| 日本免费人成黄页网观看视频| 91精品全国免费观看青青| 亚洲娇小性xxxx色| 国产成人亚洲精品91专区手机| 18勿入网站免费永久| 四虎精品免费永久免费视频|