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

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

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

    yxhxj2006

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    全面對(duì)比T-SQL與PL/SQL

    以前一直用mssql 做開發(fā),最近的項(xiàng)目都Oracle,

     

    1)數(shù)據(jù)類型

     

    TSQL

    PL/SQL

     

    numeric(p,s)

    numeric(p,s) or NUMBER(p,s)

     

    decimal(p,s)

    decimal(p,s) or NUMBER(p,s)

     

    char(m)

    Char(m)

     

    varchar(m)

    varchar2(m)

     

    datetime

    date

    記錄

     

    Record

    表字段

     

    %type

    表記錄

     

    %rowtype

     

    Table

    自動(dòng)增長變量

    AUTOINCREMENT

     

     

    2)變量聲明、賦值與引用

     

    TSQL

    PL/SQL

    聲明

    declare

     @ls_casher char(1),

     @ln_payAmt decimal(14,4)

    declare

     on_hand INTEGER;

     ls_casher char(1);

    賦值

    select @ls_casher = 'A'

    ls_casher:=’A’;

    引用

    if @ ls_casher = 'A'

    if ls_casher = 'A' then

    SQL語句中賦值

    SELECT @ls_casher=sal FROM emp WHERE empno = emp_id;

    SELECT sal INTO ls_casher FROM emp WHERE empno = emp_id;

    SQL語句中引用

    SELECT * FROM emp WHERE sal = @ls_casher;

    SELECT * FROM emp WHERE sal = ls_casher;

     

    3)函數(shù)與操作符

    字符串

     

    TSQL

    PL/SQL

    連接

    +

    ||

     

    TRIM

    LTRIMRTRIM

     

    SUBSTRING

    SUBSTRSUBSTRB

     

     

    INSTRINSTRB

     

    right(str,n)

    substr(str,-n)

     

    日期

     

    TSQL

    PL/SQL

    系統(tǒng)日期

    getdate()

    SYSDATE

     

     

     

     

    空值判斷與處理

     

    TSQL

    PL/SQL

    判斷

    IS NULL

    IS NULL

    空值替換

    Isnull(para,0)

    NVL(para,0)

    REPLACE(old_string, NULL, my_string)

     

     

     轉(zhuǎn)換

     

    TSQL

    PL/SQL

    字符->日期

    Convert(datetime, expr, style)

    To_Date(format, expr)

    字符<-日期、數(shù)值

    Convert(char(n), expr, style)

    To_char(expr,format)

    數(shù)值

     

    To_Number()

    語句

     

    TSQL

    PL/SQL

    statement block

    BEGIN...END

    BEGIN...END;

    conditional

    1) IF…ELSE…

    2) IF…ELSE IF…else…

    3) CASE

    1)IF..then...ELSE…end if;

    2)If…then…

     elsif…else…endif

    3)decode

    Repeat

    WHILE Boolean_expression

        {statement_block}

        [BREAK]

        {statement_block}

        [CONTINUE]

     

    1)Loop …exit;…end loop;

    2)loop…exit when…end loop;

    3)WHILE condition LOOP

     sequence_of_statements;

      EXIT WHEN boolean_expression;

     END LOOP;

    3)for…in [reverse]…loop

     …

     end loop;

    GOTO

    GOTO label

    label:

    GOTO label;

    <<label>>

    Exits unconditionally

    RETURN

    Return;

    Sets a delay for statement execution

    WAITFOR

     

    Comment

    --

    /*…*/

    --

    /*…*/

    PRINT

    PRINT string

    Set serveroutput on

    dbms_output.put_line(string);

    RAISERROR

    RAISERROR

     

    EXECUTE

    EXECUTE

     

    NULL statement

     

    NULL;

     

    4)cursor

     

    TSQL

    PL/SQL

    DECLARE

    DECLARE cursor_name CURSOR

    [LOCAL | GLOBAL]

    [FORWARD_ONLY | SCROLL]

    [STATIC | KEYSET | DYNAMIC | FAST_FORWARD]

    [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]

    [TYPE_WARNING]

    FOR select_statement

    [FOR UPDATE [OF column_name [,...n]]]

    DECLARE

       CURSOR cursor_name IS

          SELECT_statement;

    open

    Open cursor_name

    Open cursor_name;

    Fetch

    Fetch cursor_name into

     var1,var2…

    Fetch cursor_name into

     var1,var2…

    ||

     %rowtype_var;

    Close

    Close cursor_name

    Close cursor_name;

    Attribute

    @@FETCH_STATUS

    @@CURSOR_ROWS

    CURSOR_STATUS

    %found

    %notfound

    %isopen

    %rowcount

    DEALLOCATE

    DEALLOCATE cursor_name

     

    隱式cursor

     

    Select…into (僅可處理單行記錄)

     

     

     

     

    5)trigger

     

    TSQL

    PL/SQL

    創(chuàng)建

    CREATE TRIGGER trigger_name

    ON table

    [WITH ENCRYPTION]

    {FOR {[DELETE][,][INSERT][,] [UPDATE] }

    AS

        sql_statement [...n]

    }

     Create or replace trigger t_name

     {before|after}{insert|update|delete}

     on table_name

     [for each row [when conditional]

     …

    類型(按觸發(fā)級(jí)別和時(shí)序)

    語句

    after

    行或語句

    before or after

    訪問數(shù)據(jù)操縱行的值

    通過表InsertedDeleted訪問

    通過記錄 :New :Old訪問,僅可用于行級(jí)觸發(fā)器

    謂詞/函數(shù)/屬性

    Insertingupdatingdeleteing

    Updating(col)

    Update(col)

    使能

    Alter table tabname {disable|enable} trigger {t_name|all}

    Alter trigger t_name {disable|enable}

    限制

     

    作為觸發(fā)語句的一部分,不可用事務(wù)控制命令

    不能聲明和使用LONGLONG RAW變量和列

    刪除

    Drop trigger t_name

    Drop trigger t_name;

     

    6)procedure

     

    TSQL

    PL/SQL

    創(chuàng)建

    CREATE PROCEDURE] p_name

     [ {@parameter data_type} [VARYING] [= default] [OUTPUT] ] [,...n]

    [WITH

     {

       RECOMPILE | ENCRYPTION

       | RECOMPILE, ENCRYPTION

     }

    ]

    AS

        sql_statement [...n]

    Create or replace procedure p_name

     [Para1 {in|out|inout} datatype[,…]

     [{:=|default} default_value]]

    {IS|AS}

    查詢

     

     

    刪除

    DROP PROCEDURE p_name

    DROP PROCEDURE p_name;

    調(diào)用

    EXEC p_name [para1[,…]]

    P_name[(para1[,…])];

    參數(shù)

    按位置傳遞

    1)按位置傳遞

    2)帶名傳遞

     P_name(para1=>var1);

     

    debit_account(amount => 500, acct_id => 10261);

    7)數(shù)據(jù)字典/系統(tǒng)表

     

    TSQL

    PL/SQL

    系統(tǒng)對(duì)象表

    Dbo.sysobjects

    User_sourceUser_objects(OBJ)User_tables(TABS)User_triggersALL_tablesAll_ViewAll_catalogAll_objects

    對(duì)象腳本

    sp_helptext

    DESCALL_source

    用戶表

    Sysusers

    All_users

    表列

     

    All_tab_columns

    依賴

     

    All_dependencies

    字典表說明

     

    DICT

     

    8)SQL

     

    TSQL

    PL/SQL

    Select

    Select @var=<value>

     

    Select value into var from dual

     

    Insert

    insert / insert into

    insert into

    Delete

     

     

    比較

     

    Any, some, all

    集合

     

    UnionUnion allIntersectMinus

    9)全局變量

     

    TSQL

    PL/SQL

    語句執(zhí)行成功

    error

    SQLCODE

    select 是否有結(jié)果

    exists

    select...into + SQL%FOUND

     

    10)     命令行查詢工具

     

    ISQL

    SQL PLUS

    讀取、執(zhí)行SQL文件

    Isql –Usa –Ppass –Shost –ifile

    sqlplus [-s] user/pass@db -@filename

     

     

     

     

     

     

     

     

     

     

    11)     雜項(xiàng)

     

    TSQL

    PL/SQL

    SQL語句中

    Insert…With tablock

    Insert…With Tablockx

    Select…for update

    Select…for readonly

    獨(dú)立語句

    set transcation isolation level to Read uncommited

     

    SQL語句中

    select …for update of…;

     

    獨(dú)立語句

    lock table tabname in row share mode;

    lock table tabname in share exclusive mode;

     

    用戶連接數(shù)

     

     

    數(shù)據(jù)庫文件

    Device

    Tablespace

     

    CREATE TABLESPACE testdb DATAFILE 'C:\ORANT\DATABASE\testdb.ORA' SIZE 20M AUTOEXTEND ON NEXT 2M;

    CREATE ROLLBACK SEGMENT "RB_TESTDB" TABLESPACE "TESTDB";

    ALTER ROLLBACK SEGMENT "RB_TESTDB" ONLINE;

     

    顯示DML執(zhí)行計(jì)劃

    Show plan

    Explain plan

    保留點(diǎn)

    ¨         Save transcation Sp_name

    ¨         ROLLBACK TRANSACTION percentchanged

    ¨         Savepoint Sp_name

    ¨         Rollback to savepoint sp_name

    對(duì)模式對(duì)象改名

    Rename

     

    分析對(duì)象

    Analyze

    Sp_help?

     

     

     

     

     1. select into 語法
     
    現(xiàn)在有表
    tablea
    (
     cola int ,
     colb varchar(20)
    )
     
    要把tablea中滿足條件(cola <100)的記錄生成新的表tableb。
     
    在ms sqlserver 可以直接用select into語法:
    select * into tableb
    where cola < 100
     
    在oracle中語法如下:
    create table tableb
    as
    (
      select * from tablea
        where cola <100
    )

    posted on 2012-08-16 08:46 奮斗成就男人 閱讀(513) 評(píng)論(0)  編輯  收藏 所屬分類: SQL

    主站蜘蛛池模板: 72pao国产成视频永久免费| 日日躁狠狠躁狠狠爱免费视频| 亚洲人和日本人jizz| 亚洲国产综合精品中文第一| 极品色天使在线婷婷天堂亚洲| 一级毛片aa高清免费观看| 两个人看的www免费| 69xx免费观看视频| 国产jizzjizz视频全部免费| 亚洲乱色熟女一区二区三区丝袜| 久久精品亚洲精品国产色婷| 亚洲码和欧洲码一码二码三码 | 亚洲国产女人aaa毛片在线| 亚洲一区二区三区四区视频| 国产亚洲综合一区二区三区| 女人隐私秘视频黄www免费| 2015日韩永久免费视频播放| 日韩精品视频免费在线观看| 亚洲中文字幕无码一区二区三区| 综合自拍亚洲综合图不卡区| 久久久久亚洲精品无码网址色欲| 精精国产www视频在线观看免费| 亚洲精品在线免费观看| 国产一精品一aⅴ一免费| 亚洲AV永久青草无码精品| 亚洲影院天堂中文av色| 中国一级毛片视频免费看| 亚色九九九全国免费视频| 一区二区三区精品高清视频免费在线播放| 中文在线免费视频| 女人18毛片水真多免费播放| 亚洲综合无码精品一区二区三区| 亚洲男人的天堂久久精品| 亚洲欧洲日韩极速播放| 青青草97国产精品免费观看 | 久久久久国产精品免费看| 成**人免费一级毛片| 亚洲av无码成h人动漫无遮挡| 亚洲AV无码AV男人的天堂不卡| 久久99精品视免费看| 免费一看一级毛片人|