淺析oracle與sqlserver的區(qū)__第1頁(yè)
淺析oracle與sqlserver的區(qū)__第2頁(yè)
淺析oracle與sqlserver的區(qū)__第3頁(yè)
淺析oracle與sqlserver的區(qū)__第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Select語(yǔ)句的不同oracleSelect * from tablename where rownum < 2sqlserverSelect top 1 * from tablename oracleSelect A.*, B.* from A, B where A.bh=B.bh(+) sqlserverSelect A.*, B.* from A left Join B on A.bh=B.bh oracleSelect A.*, B.* from A, B where A.bh(+)=B.bh sqlserverSelect A.*, B.* from A right join

2、 B where A.bh=B.bh /oracle 9i 以后也支持了oracleSelect * from tablename where lrsj>= to_date(2002-11-11,yyyy-mm-dd) sqlserverSelect * from tablename where lrsj >= 2002-11-11 oracleSelect sysdate from dual sqlserverSelect getdate() oracleSelect Field1 | Field2 from A (指字符串的)sqlserverSelect Field1+Fie

3、ld2 from A Insert語(yǔ)句的不同Oracle如何實(shí)現(xiàn)自增列 (1)建立測(cè)試數(shù)據(jù)表。 CREATE TABLE TEST ( ID NUMBER, NAME VARCHAR2(20), PRIMARY KEY(ID) ); (2) 創(chuàng)建序列。 CREATE SEQUENCE SEQ_TEST; (3)創(chuàng)建觸發(fā)器。 CREATE OR REPLACE TRIGGER AUTOINCREMENT BEFORE INSERT ON TEST FOR EACH ROW WHEN (NEW.ID IS NULL) BEGIN SELECT SEQ_TEST.NEXTVAL INTO :NEW.

4、ID FROM DUAL; END; (4)插入數(shù)據(jù)。 INSERT INTO TEST(NAME) VALUES('NAME1'); (5)查看插入結(jié)果。 SELECT * FROM TEST; Parameter的區(qū)別OracelInsert Into Table (Column1,Column2) values (:Value1,:Value2) Sql Serverinsert into Table (Column1,Column2) values (Value1,Value2) 注在查詢字符串中使用+字符來描述參數(shù),在SqlParameter中的參數(shù)名也要使用&quo

5、t;"符號(hào)。而在Oracle中SQL語(yǔ)句不能使用符號(hào),以冒號(hào)":"代替存儲(chǔ)過程的不同與SQL Server不同,在Oracle中存儲(chǔ)過程一般寫成Function,而不是Procedure。Oracle存儲(chǔ)過程并不直接返回記錄集,記錄集以游標(biāo)的形式通過參數(shù)返回一個(gè)包(Packages)可以包含多個(gè)存儲(chǔ)過程,使用存儲(chǔ)過程時(shí)采用"包名.存儲(chǔ)過程名"的方式Function GetList(keywords In varchar2,p_info_list_Cursor out get_data_cur_type) Return Number As Beg

6、in open p_info_list_Cursor For Select * from Test where Key=keywords ; Return 0; End; Oracle 的 INTERSECT 和 MINUS 集合運(yùn)算符(差異集合)SQL Server EXISTS 和 NOT EXISTS 子句oracleSELECT CCODE, CNAMEFROM DEPTINTERSECTSELECT C.CCODE, C.CNAMEFROM STUDENT G, DEPT CWHERE C.CCODE = G.CCODEsqlserverSELECT CCODE, CNAMEFROM

7、 DEPT CWHERE EXISTS(SELECT * FROM STUDENT GWHERE C.CCODE = G.CCODE)oracleSELECT CCODE, CNAMEFROM DEPTMINUSSELECT C.CCODE, C.CNAMEFROM STUDENT G, DEPT CWHERE C.CCODE = G.CCODEsqlserverSELECT CCODE, CNAMEFROM DEPT CWHERE NOT EXISTS(SELECT * FROM STUDENT GWHERE C.CCODE = G.CCODE)T-SQL 語(yǔ)言支持對(duì)表和視圖的插入,但不支持

8、對(duì) SELECT 語(yǔ)句的 INSERT 操作。oracleINSERT INTO (SELECT SSN, CCODE, GRADE FROM GRADE)VALUES ('11', '1111',NULL)sqlserverINSERT INTO GRADE (SSN, CCODE, GRADE)VALUES ('11', '1111',NULL)T-SQL 語(yǔ)言支持對(duì)表和視圖的插入,但不支持對(duì) SELECT 語(yǔ)句的 INSERT 操作。如果 Oracle 應(yīng)用程序代碼執(zhí)行對(duì) SELECT 語(yǔ)句的插入操作oracleUpdate A SET 字段1(select 字段表達(dá)式 from B WHERE) 字段2(select 字段表達(dá)式 from B WHERE) WHERE 邏輯表達(dá)式sqlserverUpdate A SET 字段1=B字段表達(dá)式 字段2B字段表達(dá)式From B WHERE 邏輯表達(dá)式Oracle UPDATE 命令只能使用一個(gè) PL/SQL 塊中的程序變量。而Transact-SQL 語(yǔ)言并不需要使用塊。oracleDECLAREVAR1 NUMBER(10,2);BE

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論