當前位置:首頁 » 編程語言 » oraclesql手冊

oraclesql手冊

發布時間: 2022-12-30 12:48:34

A. oracle資料庫sql

1、寫出創建此資料庫表的sql語句(student,course,score三個表任意寫一個創建語句)
CREATE TABLE STUDENT
(
stu_id VARCHAR2(20),
name VARCHAR2(20),
Age INTEGER,
sex CHAR(2),
stu_class VARCHAR2(12)

)
2、給表course的課程號(co_id)欄位添加主鍵約束,給成績表score的課程號(co_id)欄位添加外鍵約束,其中主表是course,從表示score,寫出sql語句
ALTER TABLE COURSE ADD CONSTRAINT COURSE_P_COID PRIMARY KEY (CO_ID);
ALTER TABLE SCORE ADD CONSTRAINT SCORE_F_COID FOREIGN KEY(CO_ID) REFERENCES COURSE(CO_ID) ;

3、向score表中插入一條記錄,寫出此sql語句
INSERT INTO SCORE VALUES ('1111000',1,90);

4、查詢課程成績大於80分的學生姓名和課程名,寫出sql語句
SELECT B.NAME,C.CO_NAME FROM SCORE A,STUDENT B,COURSE C
WHERE A.STU_ID=B.STU_ID
AND A.CO_ID=C.CO_ID
AND A.SCORE>80
5、編寫函數返回女同學的平均課程成績是多少(女同學:sex=』 女),寫出sql語句
CREATE OR REPLACE FUNCTION FUN_GETSCORE
RETURN NUMBER
IS
V_SCORE NUMBER;

BEGIN
SELECT AVG(A.SCORE) INTO V_SCORE FROM SCORE A,STUDENT B
WHERE A.STU_ID=B.STU_ID
AND B.SEX='女';
RETURN V_SCORE;
END;
6、編寫存儲過程,更新學生成績表score的課程成績(score)欄位,更新語句為:update score set score=newscore where stu_id=stuid and co_id=coid其中新的成績,學號,課程號作為傳人的形式參數,定義為:newscore in number,stuid in varchar2,coid in varchar2,寫出此sql語句
CREATE OR REPLACE PROCEDURE P_UPDATE_SCORE(newscore in number,stuid in varchar2,coid in varchar2)
AS

BEGIN
update score set score=newscore where stu_id=stuid and co_id=coid;
COMMIT;
END;

B. 怎麼在oracle sqldeveloper 找plsql開發手冊

1
首先確保有oracle資料庫或者有oracle伺服器,然後才能使用PLSQL Developer連接資料庫。

2
啟動PLSQL Developer,登陸oracle用戶賬號後連接(這里不詳細介紹如何配置tnsname.ora)了。

3
登陸成功後即可進入對象瀏覽器窗口界面

4
在對象瀏覽器選擇「my object」,這里邊就是SCOTT(當前登陸的用戶的所有object)

5
找到table文件夾,里邊就是當前賬戶的所有表格

C. 資料庫手冊:Oracle維護常用SQL語句二

回滾段查看 select rownum sys dba_rollback_segs segment_name Name v$rollstat extentsExtents v$rollstat rssize Size_in_Bytes v$rollstat xacts XActs v$rollstat gets Gets v$rollstat waits Waits v$rollstat writes Writes sys dba_rollback_segs status status from v$rollstat sys dba_rollback_segs v$rollname where v$rollname name(+) = sys dba_rollback_segs segment_name andv$rollstat usn (+) = v$rollname usn order by rownum 耗資源的進程(top session) select s schemaname schema_name decode(sign( mand) to_char(mand) Action Code # || to_char(mand) ) action statussession_status s osuser os_user_name s sid p spid s serial# serial_num nvl(s username [Oracle process] ) user_name s terminal terminal s program program st value criteria_value from v$sesstat st v$session s v$process pwhere st sid = s sid and st statistic# = to_number( ) and ( ALL = ALL or s status = ALL ) and p addr = s paddr order by st value desc p spid asc s username asc s osuser asc 查看鎖(lock)情況 select /*+ RULE */ ls osuser os_user_name ls username user_name decode(ls type RW Row wait enqueue lock TM DML enqueue lock TX Transaction enqueue lock UL User supplied lock ) lock_type o object_name object decode(ls lmode null Row Share Row Exclusive Share Share Row Exclusive Exclusive null)lock_mode o owner ls sid ls serial# serial_num ls id ls id from sys dba_objects o ( select s osuser s username l type l lmode s sid s serial# l id l id from v$session s v$lock l where s sid = l sid ) ls where o object_id = ls id and o owner<> SYS order by o owner o object_name 查看等待(wait)情況 SELECT v$waitstat class v$unt count SUM(v$sysstat value) sum_valueFROM v$waitstat v$sysstat WHERE v$sysstat name IN ( db block gets consistent gets ) group by v$waitstat class v$unt 查看sga情況 SELECT NAME BYTES FROM SYS V_$SGASTAT ORDER BY NAME ASC 查看catched object SELECT owner name db_link namespace type sharable_mem loads executions locks pins kept FROM v$db_object_cache 查看V$SQLAREA SELECT SQL_TEXT SHARABLE_MEM PERSISTENT_MEM RUNTIME_MEM SORTS VERSION_COUNT LOADED_VERSIONS OPEN_VERSIONS USERS_OPENING EXECUTIONS USERS_EXECUTING LOADS FIRST_LOAD_TIME INVALIDATIONS PARSE_CALLS DISK_READS BUFFER_GETS ROWS_PROCESSED FROM V$SQLAREA 查看object分類數量 select decode (o type# INDEX TABLE CLUSTER VIEW SYNONYM SEQUENCE OTHER ) object_type count(*) quantity fromsys obj$ o where o type# > group by decode (o type# INDEX TABLE CLUSTER VIEW SYNONYM SEQUENCE OTHER ) union select COLUMN count(*) from l$ union select DB LINK count(*) from 按用戶查看object種類 select u name schema sum(decode(o type# NULL)) indexes sum(decode(o type# NULL)) tables sum(decode(o type# NULL))clusters sum(decode(o type# NULL)) views sum(decode(o type# NULL)) synonyms sum(decode(o type# NULL)) sequences sum(decode(o type# NULL NULL NULL NULL NULL NULL ))others from sys obj$ o sys user$ u where o type# >= and u user# =o owner# and u name <> PUBLIC group by u name order bysys link$ union select CONSTRAINT count(*) from n$ 有關connection的相關信息 )查看有哪些用戶連接select s osuser os_user_name decode(sign( mand) to_char(mand) Action Code # || to_char(mand) ) action p program oracle_process status session_status s terminal terminal s program program s username user_name s fixed_table_sequence activity_meter query memory max_memory cpu_usage s sid s serial# serial_numfrom v$session s v$process p where s paddr=p addr and s type = USER order by s username s osuser )根據v sid查看對應連接的資源佔用等情況select n name v value n class n statistic#from v$statname n v$sesstat vwhere v sid = andv statistic# = n statistic#order by n class n statistic# )根據sid查看對應連接正在運行的sqlselect /*+ PUSH_SUBQ */mand_type sql_text sharable_mem persistent_mem runtime_mem sorts version_count loaded_versions open_versions users_opening executions users_executing loads first_load_time invalidations parse_calls disk_reads buffer_gets rows_processed sysdate start_time sysdate finish_time > || address sql_address N statusfrom v$sqlareawhere address = (select sql_address from v$session where sid = ) 查詢表空間使用情況select a tablespace_name 表空間名稱 round((nvl(b bytes_free )/a bytes_alloc)* ) 佔用率(%) round(a bytes_alloc/ / ) 容量(M) round(nvl(b bytes_free )/ / ) 空閑(M) round((a bytes_alloc nvl(b bytes_free ))/ / ) 使用(M) Largest 最大擴展段(M) to_char(sysdate yyyy mm dd hh :mi:ss ) 采樣時間 from (select f tablespace_name sum(f bytes) bytes_alloc sum(decode(f autoextensible YES f maxbytes NO f bytes)) maxbytesfrom dba_data_files fgroup by tablespace_name) a (select f tablespace_name sum(f bytes) bytes_freefrom dba_free_space fgroup by tablespace_name) b (select round(max(ff length)* / ) Largest ts name tablespace_namefrom sys fet$ ff sys file$ tf sys ts$ tswhere ts ts#=ff ts# and ff file#=tf relfile# and ts ts#=tf ts#group by ts name tf blocks) cwhere a tablespace_name = b tablespace_name and a tablespace_name = c tablespace_name 查詢表空間的碎片程度 select tablespace_name count(tablespace_name) from dba_free_space group by tablespace_namehaving count(tablespace_name)> ;alter tablespace name coalesce;alter table name deallocate unused;create or replace view ts_blocks_v asselect tablespace_name block_id bytes blocks free space segment_name from dba_free_spaceunion allselect tablespace_name block_id bytes blocks s lishixin/Article/program/Oracle/201311/18531

D. 資料庫手冊:速查Oracle函數列表

PL/SQL單行函數和組函數詳解 函數是一種有零個或多個參數並且有一個返回值的程序 在SQL中Oracle內建了一系列函數 這些函數都可被稱為SQL或PL/SQL語句 函數主要分為兩大類: 單行函數; 組函數本文將討論如何利用單行函數以及使用規則 SQL中的單行函數SQL和PL/SQL中自帶很多類型的函數 有字元 數字 日期 轉換 和混合型等多種函數用於處理單行數據 因此這些都可被統稱為單行函數 這些函數均可用於SELECT WHERE ORDER BY等子句中 例如下面的例子中就包含了TO_CHAR UPPER SOUNDEX等單行函數 SELECT ename TO_CHAR(hiredate day DD Mon YYYY )FROM empWhere UPPER(ename) Like AL% ORDER BY SOUNDEX(ename)單行函數也可以在其他語句中使用 如update的SET子句 INSERT的VALUES子句 DELET的WHERE子句 認證考試特別注意在SELECT語句中使用這些函數 所以我們的注意力也集中在SELECT語句中 NULL和單行函數 在如何理解NULL上開始是很困難的 就算是一個很有經驗的人依然對此感到困惑 NULL值表示一個未知數據或者一個空值 算術操作符的任何一個操作數為NULL值 結果均為提個NULL值 這個規則也適合很多函數 只有CONCAT DECODE DUMP NVL REPLACE在調用了NULL參數時能夠返回非NULL值 在這些中NVL函數時最重要的 因為他能直接處理NULL值 NVL有兩個參數:NVL(x x ) x 和x 都式表達式 當x 為null時返回X 否則返回x 下面我們看看emp數據表它包含了薪水 獎金兩項 需要計算總的補償column name emp_id salary bonuskey type pk nulls/unique nn u nnfk table datatype number number numberlength 不是簡單的將薪水和獎金加起來就可以了 如果某一行是null值那麼結果就將是null 比如下面的例子:update empset salary=(salary+bonus)* 這個語句中 雇員的工資和獎金都將更新為一個新的值 但是如果沒有獎金 即 salary + null 那麼就會得出錯誤的結論 這個時候就要使用nvl函數來排除null值的影響 所以正確的語句是:update empset salary=(salary+nvl(bonus )* 單行字元串函數 單行字元串函數用於操作字元串數據 他們大多數有一個或多個參數 其中絕大多數返回字元串ASCII()c 是一字元串 返回c 第一個字母的ASCII碼 他的逆函數是CHR()SELECT ASCII( A ) BIG_A ASCII( z ) BIG_z FROM empBIG_A BIG_z CHR()[NCHAR_CS]i是一個數字 函數返回十進製表示的字元select CHR( ) CHR( ) CHR( ) FROM empCHR CHR CHR A z BCONCAT( )c c 均為字元串 函數將c 連接到c 的後面 如果c 為null 將返回c 如果c 為null 則返回c 如果c c 都為null 則返回null 他和操作符||返回的結果相同select concat( slobo Svoboda ) username from alusernameslobo SyobodaINITCAP()c 為一字元串 函數將每個單詞的第一個字母大寫其它字母小寫返回 單詞由空格 控制字元 標點符號限制 select INITCAP( veni vedi vici ) Ceasar from alCeasarVeni Vedi ViciINSTR( [ [ ]])c c 均為字元串 i j為整數 函數返回c 在c 中第j次出現的位置 搜索從c 的第i個字元開始 當沒有發現需要的字元時返回 如果i為負數 那麼搜索將從右到左進行 但是位置的計算還是從左到右 i和j的預設值為 select INSTR( Mississippi i ) from alINSTR( MISSISSIPPI I ) select INSTR( Mississippi i ) from alINSTR( MISSISSIPPI I ) INSTRB( [ i[ j])與INSTR()函數一樣 只是他返回的是位元組 對於單位元組INSTRB()等於INSTR()LENGTH()c 為字元串 返回c 的長度 如果c 為null 那麼將返回null值 select LENGTH( Ipso Facto ) ergo from alergo LENGTHb()與LENGTH()一樣 返回位元組 lower()返回c的小寫字元 經常出現在where子串中select LOWER(colorname) from itemdetail WHERE LOWER(colorname) LIKE %white% COLORNAMEWinterwhiteLPAD( [ ])c c 均為字元串 i為整數 在c 的左側用c 字元串補足致長度i 可多次重復 如果i小於c 的長度 那麼只返回i那麼長的c 字元 其他的將被截去 c 的預設值為單空格 參見RPAD select LPAD(answer ) padded answer unpadded from question;PADDED UNPADDED Yes YesNO NOMaybe maybeLTRIM( )把c 中最左邊的字元去掉 使其第一個字元不在c 中 如果沒有c 那麼c 就不會改變 select LTRIM( Mississippi Mis ) from alLTRppiRPAD( [ ])在c 的右側用c 字元串補足致長度i 可多次重復 如果i小於c 的長度 那麼只返回i那麼長的c 字元 其他的將被截去 c 的預設值為單空格 其他與LPAD相似RTRIM( )把c 中最右邊的字元去掉 使其第後一個字元不在c 中 如果沒有c 那麼c 就不會改變 REPLACE( [ ])c c c 都是字元串 函數用c 代替出現在c 中的c 後返回 select REPLACE( uptown up down ) from alREPLACEdowntownSTBSTR( [ ])c 為一字元串 i j為整數 從c 的第i位開始返回長度為j的子字元串 如果j為空 則直到串的尾部 select SUBSTR( Message ) from alSUBSMessSUBSTRB( [ ])與SUBSTR大致相同 只是I J是以位元組計算 SOUNDEX()返回與c 發音相似的詞select SOUNDEX( dawes ) Dawes SOUNDEX( daws ) Daws SOUNDEX( dawson ) from alDawes Daws DawsonD D D TRANSLATE( )將c 中與c 相同的字元以c 代替select TRANSLATE( fumble uf ar ) test from alTEXTrambleTRIM([[]] from c )將c 串中的第一個 最後一個 或者都刪除 select TRIM( space padded ) trim from al TRIMspace paddedUPPER()返回c 的大寫 常出現where子串中select name from al where UPPER(name) LIKE KI% NAMEKING 單行數字函數 單行數字函數操作數字數據 執行數學和算術運算 所有函數都有數字參數並返回數字值 所有三角函數的操作數和值都是弧度而不是角度 oracle沒有提供內建的弧度和角度的轉換函數 ABS()返回n的絕對值ACOS()反余玄函數 返回 到 之間的數 n表示弧度select ACOS( ) pi ACOS( ) ZERO FROM alPI ZERO ASIN()反正玄函數 返回 到 n表示弧度ATAN()反正切函數 返回n的反正切值 n表示弧度 CEIL()返回大於或等於n的最小整數 COS()返回n的余玄值 n為弧度COSH()返回n的雙曲余玄值 n 為數字 select COSH(< >) FROM alCOSH( ) EXP()返回e的n次冪 e= FLOOR()返回小於等於N的最大整數 LN()返回N的自然對數 N必須大於 LOG( )返回以n 為底n 的對數MOD()返回n 除以n 的余數 POWER( )返回n 的n 次方ROUND( )返回舍入小數點右邊n 位的n 的值 n 的預設值為 這回將小數點最接近的整數 如果n 為負數就舍入到小數點左邊相應的位上 n 必須是整數 select ROUND( ) ROUND( ) FROM alROUND( ) ROUND( ) SIGN()如果n為負數 返回 如果n為正數 返回 如果n= 返回 SIN()返回n的正玄值 n為弧度 SINH()返回n的雙曲正玄值 n為弧度 SQRT()返回n的平方根 n為弧度TAN()返回n的正切值 n為弧度TANH()返回n的雙曲正切值 n為弧度TRUNC( )返回截尾到n 位小數的n 的值 n 預設設置為 當n 為預設設置時會將n 截尾為整數 如果n 為負值 就截尾在小數點左邊相應的位上 單行日期函數 單行日期函數操作DATA數據類型 絕大多數都有DATA數據類型的參數 絕大多數返回的也是DATA數據類型的值 ADD_MONTHS( )返回日期d加上i個月後的結果 i可以使任意 lishixin/Article/program/Oracle/201311/17021

E. Oracle中SQL*PLUS使用的一些技巧

Sql*plus中蘊藏著好多技巧 如果掌握這些技巧 對於在oracle資料庫下進行快速開發與有效維護資料庫都是有益的 .使用SQL*PLUS動態生成批量腳本將spool與select命令結合起來使用 可以生成一個腳本 腳本中包含有可以批量執行某一任務的語句 例 生成一個腳本 刪除SCOTT用戶下的所有的表 a 創建gen_drop_table sql文件 包含如下語句 SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在c盤根目錄下會生成文件drop_table sql文件 包含刪除所有表的語句 如下所示:SQL>SELECT DROP TABLE || table_name || ; FROM user_tables; DROPTABLE ||TABLE_NAME|| ; DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STAT_VENDER_TEMP;DROP TABLE TABLE_FORUM; rows selected SQL>SPOOL OFFd 對生成的drop_table sql文件進行編輯去掉不必要的部分 只留下drop table … 語句e 在scott用戶下運行dorp_table sql文件 刪除scott用戶下所有的表 SQLPLUS > @ c:dorp_table sql在上面的操作中 在生成的腳本文件中會有多餘的字元 如運行的sql語句 標題 或返回的行數 需要我們編輯該腳本後再運行 給實際的操作帶來諸多不便 懶惰是人的本性 這促使我們用更簡單的辦法來實現上面的任務 a 創建gen_drop_table sql文件 包含如下語句 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlSELECT DROP TABLE || table_name || ; FROM user_tables;SPOOL OFFb 以SCOTT用戶登錄資料庫SQLPLUS > @ … gen_dorp_table sqlc 在c盤根目錄下會生成文件drop_table sql文件 包含刪除所有表的語句 如下所示:DROP TABLE DEPT;DROP TABLE EMP;DROP TABLE PARENT;DROP TABLE STAT_VENDER_TEMP;DROP TABLE TABLE_FORUM;d 在scott用戶下運行dorp_table sql文件 刪除scott用戶下所有的表 SQLPLUS > @ c:dorp_table sql .將一個表中的數據導出生成一個文本文件 列與列之間以 隔開set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:drop_table sqlselect DEPTNO || || DNAME FROM DEPT;SPOOL OFF將上面的內容保存為一個文本文件後 以scott登錄 執行該文件後顯示結果 ACCOUNTING RESEARCH SALES OPERATIONS通過上面的兩個例子 我們可以將 set echo offset feedback offset newpage noneset pagesize set linesize set verify offset pagesize set term offset trims onset linesize set headingoffset timing offset verify offset numwidth SPOOLc:具體的文件名你要運行的sql語句SPOOL OFF作為一個模版 只要將必要的語句假如這個模版就可以了 在oracle的較新版本中 還可以用set colsep命令來實現上面的功能 SQL> set colsep SQL> select * from dept; ACCOUNTING NEW YORK RESEARCH DALLAS SALES CHICAGO OPERATIONS BOSTON aa bb .動態生成spool命令所需的文件名在我們上面的例子中 spool命令所需要的文件名都是固定的 有時我們需要每天spool一次 並且每次spool的文件名都不相同 如文件名包含當天的日期 該如何實現呢?column dat new_value filename;select to_char(sysdate yyyymmddhh mi ) dat from al;spool c:&&filename txtselect * from dept;spool off; .如何從腳本文件中得到WINDOWS環境變數的值 在windos中 spool c: emp\%ORACLE_SID% txtselect * from dept; spool off在上面的例子中 通過%ORACLE_SID%的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt在UNIX中 spool c: emp$ORACLE_SID txtselect * from dept; spool off在上面的例子中 通過$ORACLE_SID的方式引用環境變數ORACLE_SID的值 如果ORACLE_SID的值為orcl 則生成的spool文件名為 orcl txt .如何指定預設的編輯腳本的目錄在sql*plus中 可以用save命令 將上一條執行的sql語句保存到一個文件中 但是如何設置該文件的預設目錄呢?通過SQL> set editfile c: empfile sql 命令 可以設置其預設目錄為c: mpe 預設文件名為file sql .如何除去表中相同的行找到相同的行 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注釋 如果只找deptno列相同的行 上面的查詢可以改為 SELECT * FROM dept aWHERE ROWID <> (SELECT MAX(ROWID)FROM dept bWHERE a deptno = b deptno)刪除相同的行 DELETE FROM dept aWHERE ROWID <> (SELECT MAX(ROWIDFROM dept bWHERE a deptno = b deptnoAND a dname = b dname Make sure all columns are paredAND a loc = b loc);注意 上面並不刪除列值為null的行 .如何向資料庫中插入兩個單引號( )Insert inot dept values( aa bb a b );在插入時 用兩個 表示一個 .如何設置sql*plus的搜尋路徑 這樣在用@命令時 就不用輸入文件的全路徑 設置SQLPATH環境變數 如 SQLPATH = C:ORANTDBS;C:APPSSCRIPTS;C:MYSCRIPTS .@與@@的區別是什麼?@等於start命令 用來運行一個sql腳本文件 @命令調用當前目錄下的 或指定全路徑 或可以通過SQLPATH環境變數搜尋到的腳本文件 @@用在腳本文件中 用來指定用@@執行的文件與@@所在的文件在同一目錄 而不用指定全路徑 也不從SQLPATH環境變數指定的路徑中尋找文件 該命令一般用在嵌套腳本文件中 .&與&&的區別&用來創建一個臨時變數 每當遇到這個臨時變數時 都會提示你輸入一個值 &&用來創建一個持久變數 就像用用define命令或帶new_vlaue字句的column命令創建的持久變數一樣 當用&&命令引用這個變數時 不會每次遇到該變數就提示用戶鍵入值 而只是在第一次遇到時提示一次 如 將下面三行語句存為一個腳本文件 運行該腳本文件 會提示三次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;將下面三行語句存為一個腳本文件 運行該腳本文件 則只會提示一次 讓輸入deptnoval的值 select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval;select count(*) from emp where deptno = &deptnoval; .引入的目的Copy命令在兩個資料庫之間拷貝數據時特別有用 特別是該命令可以在兩個資料庫之間傳遞long型欄位的數據 缺點 在兩個資料庫之間傳遞數據時 有可能丟失精度(lose precision) .問什麼在修改大量的行時 我的腳本會變得很慢?當通過PL/SQL塊修改一個表中的許多行時 你會創建在表上創建一個cursor 但是只有在你關閉cursor時 才會釋放ROLLBACK SEGMENT 這樣 當cursor仍然打開時 修改過程會變慢 這是因為資料庫不得不搜尋大量的rollback segment以便於維護讀一致性 為了避免這樣情況 試著在表上加一個標志欄位來描述該行是否已經被修改 然後關閉該cursor 然後再打開該cursor 每次可以修改 行 lishixin/Article/program/Oracle/201311/17262

F. sql server 2005和oracle的 中文參考手冊

sqlserver 2005自帶的幫助文檔就已經很全面了。

oracle10g的官方文檔
http://www.oracle.com/pls/db102/portal.portal_db?selected=9

G. oracle中怎樣執行.sql文件

建議使用plsql工具來連接Oracle資料庫進行表操作,這樣很方便的,就像使用sqlserver一樣方便

H. sql怎樣跨資料庫查詢oracle

假定您現在擁有一個以Microsoft.NET為架構的網路訂購系統,但是品管維護系統卻仍然使用一套舊式的Oracle資料庫應用程序。當您的顧客在產品保固期間下了產品更換之類的訂單,則該筆訂單將不收取任何費用。此時您需要從Oracle資料庫得到實時的查詢結果。借著建立連結伺服器的方式(linkedServer),您將可以從SQLServer實時查詢出位於Oracle資料庫的顧客資料,找出誰是您既有的客戶。
當您的資料分散在不同的SQLServer資料庫時,藉由連結伺服器可讓您執行跨伺服器之分布式查詢。當所有的資料庫伺服器都是SQLServer,則連結伺服器的設定十分容易,而且在SQLServer線上手冊中就涵蓋了您所需要了解的所有事項。然而,當部分資料是放在Oracle資料庫伺服器的時候,這就可能帶給您許多挑戰。舉例來說,光是設定連結伺服器就不是一件容易的事。您必須了解到:即是您要在SQLServer的EnterpriseManager設定一個Oracle連結伺服器,這台SQLServer對Oracle來說就是一個客戶端。所以您必須在SQLServer所在的伺服器成功地安裝並組態Oracle之客戶端軟體。因為Oracle提供的產品只支持Oracle8以後的資料庫,所以我假設您正在使用的都是Oracle8以後的資料庫。在OracleNet8函式庫則提供了SQLServer所需要的客戶端軟體。
設定連接伺服器時是利用Microsoft所提供的OLEDB ProviderforOracle,使用的Oracle網路函式庫為SQL*Net2.3.3.0.4或是以後的版本,不過這是Oracle7.3資料庫所提供的。換句話說,要設定Oracle資料庫為SQLServer的連接伺服器時,Oracle資料庫只要是7.3.3.4以後的版本,並搭配適當的SQL*Net或是Net8函式庫即可。
在Oracle資料庫中,一個schema即代表著SQLServer專家們所熟知的單一資料庫(譯者注2)。連接至Oracle資料庫時,您必須提供schema名稱、密碼以及主機聯機字元串(hoststring)。每一個特定的Oracle帳戶都擁有一個Oracleschema,而且只能有一個schema。所以schema名稱其實就等於該schema擁有者的帳戶名稱。您可以查詢Oracle的資料字典(Datadictionary)以得到更多有關schema的內容。
至於Oracle聯機字元串又可稱為服務名稱(servicename)或是系統識別資料(SystenIdentifier,SID)。我們所謂的SQLServer資料庫個體(instance)在Oracle則稱為資料庫(database)。所以安裝OracleServer時,安裝程序OracleUniversalInstaller(為一個圖形介面之安裝程序,與SQLServer的Setup程序類似)將會詢問您SID名稱為何,以作為Oracle資料庫之名稱。
這個部分原作者所提到schema的解釋有點問題。Oracleschema可視為同一個使用者所擁有的所有資料庫對象(schemaobjects)之集合。舉例來說,使用者scott所建立的EMPtable其完整名稱為SCOTT.EMP,而SCOTT就是EMP的schema名稱。所以schemaname其實就是一個Oracle資料庫之使用者帳號。但是絕對不能拿來跟資料庫相提並論!因為SQLServer的資料庫架構包含了datafiles與logfiles,但是Oracle的schemaobjects只存在於tablespace中。為了避免部分讀者產生混淆,特此說明。

熱點內容
安卓十二系統什麼時候更新 發布:2025-07-02 00:12:28 瀏覽:345
shell腳本需要編譯鏈接 發布:2025-07-02 00:04:20 瀏覽:474
微信如何重設密碼 發布:2025-07-02 00:02:27 瀏覽:545
java代碼基礎 發布:2025-07-02 00:00:46 瀏覽:304
煙花的代碼c語言 發布:2025-07-01 23:56:04 瀏覽:224
安卓默認打開文件方式怎麼修改 發布:2025-07-01 23:30:38 瀏覽:862
壓縮機接線座 發布:2025-07-01 23:17:48 瀏覽:662
iqoo瀏覽器緩存路徑 發布:2025-07-01 23:12:38 瀏覽:693
明日之後如何獲得最新伺服器 發布:2025-07-01 23:12:35 瀏覽:51
tv加密頻道 發布:2025-07-01 23:10:58 瀏覽:625