郵件已經(jīng)發(fā)送,
站在用戶的角度思考問題,與客戶深入溝通,找到梁河網(wǎng)站設(shè)計與梁河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋梁河地區(qū)。
yvigmmwfn@163.com用戶名發(fā)送的。
謝謝!
--創(chuàng)建包:
create or replace package wsk
as
type ref_name is ref cursor;
end;
--創(chuàng)建過程:
create or replace procedure PRC_EXCEL(v_date in String,o_cur out wsk.ref_name) is
--定義存放SQL語句變量
v_sql varchar2(1000);
begin
--賦值SQL語句變量由于考慮需要綁定變量所以需要用到動態(tài)執(zhí)行SQL
v_sql:='select vdate,name,money from oexcel where vdate=:v1';
--動態(tài)執(zhí)行V_SQL把查詢的結(jié)果集賦值給返回出去的o_cur游標(biāo),using v_date把:v1變量替換值
open o_cur for v_sql using to_date(v_date,'yyyy-mm-dd');
end PRC_EXCEL;
--創(chuàng)建表:
CREATE TABLE oexcel
(
VDATE DATE DEFAULT SYSDATE,
NAME VARCHAR2(20),
MONEY NUMBER
)
;
第一章 ORACLE介紹
由于ORACLE數(shù)據(jù)庫產(chǎn)品是當(dāng)前數(shù)據(jù)庫技術(shù)的典型代表,她的產(chǎn)品除了數(shù)據(jù)庫系統(tǒng)外,還有應(yīng)用系統(tǒng)、開發(fā)工具等。剛接觸Oracle的人員都有這樣的感覺:Oracle的產(chǎn)品太多,每個產(chǎn)品內(nèi)容精深,不知道從哪兒開始學(xué)才好。為了用少量時間更好地理解和使用oracle 數(shù)據(jù)庫系統(tǒng),有必要對oracle的一些基本術(shù)語及概念進行了解,下面給出一些在管理中經(jīng)常用到的概念和術(shù)語,供初學(xué)者快速了解Oracle數(shù)據(jù)庫系統(tǒng)提供方便。
§1.1 ORACLE7和ORACLE8
ORACLE7是一種完全的關(guān)系數(shù)據(jù)庫系統(tǒng),它不支持面向?qū)ο蟆?/p>
ORACLE8 則是一個引入面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng),它既非純的面向?qū)ο蟮臄?shù)據(jù)庫也非純的關(guān)系數(shù)據(jù)庫,它是兩者的結(jié)合,因此叫做“對象關(guān)系數(shù)據(jù)庫”。
§1.2 ORACLE8 特點
ORACLE8 于 1997年6月正式發(fā)布,它包括了幾乎所有的數(shù)據(jù)庫技術(shù),因此被認(rèn)為是未來企業(yè)級主選數(shù)據(jù)庫之一。主要有以下特點:
1.對象/關(guān)系模型
ORACLE8對于對象模型采取較為現(xiàn)實和謹(jǐn)慎的態(tài)度,使用了對象/關(guān)系模型,即在完全支持傳統(tǒng)關(guān)系模型的基礎(chǔ)上,為對象機制提供了有限的支持。ORACLE8不僅能夠處理傳統(tǒng)的表結(jié)構(gòu)信息,而且能夠管理由C++,Smalltalk 以及其它開發(fā)工具生成的多媒體數(shù)據(jù)類型,如文本,視頻,圖形,空間對向等。這種做法允許現(xiàn)有軟件開發(fā)產(chǎn)品與工具軟件及ORACLE8應(yīng)用軟件共存,保護了客戶的投資。
2.數(shù)據(jù)庫服務(wù)器系統(tǒng)的動態(tài)可伸縮性
ORACLE8引入了連接存儲池(connection polling)和多路復(fù)用(multiplexing)機制,提供了對大型對象的支持。當(dāng)需要支持一些特殊數(shù)據(jù)類型時,用戶可以創(chuàng)建軟件插件(catridge )來實現(xiàn)。ORACLE8采用了高級網(wǎng)絡(luò)技術(shù),提高共享池和連接管理器來提高系統(tǒng)的可括性,容量可從幾 GB 到 幾百 TB 字節(jié),可允許10萬用戶同時并行訪問,ORACLE 的數(shù)據(jù)庫中每個表可以容納 1000列,能滿足目前數(shù)據(jù)庫及數(shù)據(jù)倉庫應(yīng)用的需要。
ORACLE 公司稱,ORACLE8可以支持達 512PB的數(shù)據(jù)量。但目前還未有哪一家用戶的數(shù)據(jù)庫的數(shù)據(jù)量達到這個數(shù)量。下面是幾種常用數(shù)據(jù)量的等價關(guān)系:
1MB = 1024 KB
1GB = 1Gigabyte Byte = 1024 MB
1TB = 1TeraByte = 1024 GB = 1024*1024MB
1PB = 1PeraByte = 1024 TB = 1024 * 1024 * 1024 MB
1EB = 1ExaByte = 1024 PB = 1024 * 1024 *1024 *1024 MB
.....................................
Oracle11g是目前Oracle較新版本,除了傳統(tǒng)的數(shù)據(jù)庫服務(wù)外,也提供了界面友好的鏈接工具??紤]到Oracle數(shù)據(jù)的穩(wěn)定和性能方面的優(yōu)勢,在需要處理大量數(shù)據(jù)的系統(tǒng)中,可以考慮使用Oracle作為數(shù)據(jù)庫。
一:Oracle11g的安裝過程(Windows版本)很簡單,步驟為:
1. 首先從Oracle官方網(wǎng)站上下載Oracle11g數(shù)據(jù)庫,大約為1.7G。解壓后,setup.ext就可以開始安裝
2. 在安裝開始的時候,會要求填寫一些信息。需要注意兩項:
1)SID。這應(yīng)該是安裝的數(shù)據(jù)庫的ServiceID,在數(shù)據(jù)庫安裝成功后,在Window的服務(wù)中會多一項OracleServiceSID的服務(wù),這里的SID就是在安裝時填寫的字符串。因此在連接數(shù)據(jù)庫的時候都需要有SID信息,比如使用JDBC連接的時候。
2)密碼。這里的密碼是系統(tǒng)管理員的密碼(sys,sysdba)。
3. 接下來就可以按照界面提示安裝了,安裝過程中會檢查電腦配置,如果符合要求就可以繼續(xù)安裝。
4. 安裝結(jié)束后,會生成一個database config的界面,上面有安裝的數(shù)據(jù)庫的sid, port等信息。(可以把這個界面保存起來,防止以后忘記相關(guān)信息)
二:Oracle的連接
安裝完成后,就可以連接數(shù)據(jù)庫了,連接Oracle可以通過SQLPlus,SQLDeveloper,建議可以使用SQLDeveloper,因為它界面不錯。在程序-Oracle11g-應(yīng)用開發(fā)程序 下面有SQLDeveloper,第一次啟動時,需要設(shè)置java.exe的路徑(SQLDeveloper應(yīng)該是JAVA開發(fā)的),之后就可以看到連接界面了。接下來需要填寫連接信息,第一次連接時,必須先通過sysdba進行連接,所以要使用安裝時設(shè)置的密碼,其它信息如下:
1)需要選擇登錄身份為系統(tǒng)管理員 2)sid安裝時設(shè)置的sid值 3)端口號一般默認(rèn)是1521
注意在連接的時候,需要確保在服務(wù)中的OracleServiceSID和OracleOraDb11g_home1TNSListener是打開的
填好上面的信息就可以登錄了。如果要創(chuàng)建自己的數(shù)據(jù)庫,需要下面幾個過程:
1.創(chuàng)建表空間,語句如下:
CREATE TABLESPACE SampleTableSpace
DATAFILE 'D:/app/Administrator/oradata/orcl/tableFile.dbf' size 8192M reuse
AUTOEXTEND ON NEXT 8192M MAXSIZE unlimited
EXTENT MANAGEMENT local;
2.創(chuàng)建一個用戶,并默認(rèn)為SampleTableSpace表空間
CREATE USER SampleUser IDENTIFIED BY Password
DEFAULT TABLESPACE SampleTableSpace;
3.為用戶授權(quán):
GRANT connect, resource TO SampleUser ;
注意,接下來的操作必須在SampleUser的連接中進行,步驟如下:
1.在SQLDeveloper中新建一個連接,并使用剛才創(chuàng)建的SampleUser信息進行登錄
2.接下來在SampleUser的連接中就可以使用sql進行各種操作,這些操作都會在SampleTableSpace中進行。
三: 數(shù)據(jù)導(dǎo)入導(dǎo)出
Oracle提供數(shù)據(jù)導(dǎo)入和導(dǎo)出功能.命令為imp/exp,可以在cmd下運行,它們可以將數(shù)據(jù)庫中的表或其它對象導(dǎo)出為.dmp文件,或者將dmp文件導(dǎo)入,具體使用方法可以google一下,應(yīng)該比較好用。
上面是之前使用Oracle11g時的一些經(jīng)驗,如果有不正確的地方,也請大家補充。
很容易學(xué)的, 和其他數(shù)據(jù)庫差不多呢。 唯一的區(qū)別就是存儲過程里面區(qū)別大。
我的學(xué)習(xí)日記。 另外就是需要網(wǎng)上學(xué)習(xí)資料呢
create tablespace tableSpaceName
datafile 'd:\xxxxxxxx.dbf'
size 10M;
創(chuàng)建數(shù)據(jù)庫tableSpaceName,xxxxxxxx修改成你對應(yīng)的
create user username
identified by pwd
default tablespace tableSpaceName;
創(chuàng)建用戶,username,pwd 和tableSpaceName 修改成你對應(yīng)的
grant connect, resource to username;
grant dba to username;
給權(quán)限username修改你對應(yīng)的
1. 設(shè)置ORACLE_SID
默認(rèn)的ORACLE_SID是orcl,我個人強烈建議起個唯一、且意義的名字,比如**testdb,**proddb等等,在Oracle用戶下執(zhí)行:
export ORACLE_SID=lxdbtest
2. 重建PFILE
在$ORACLE_HOME/dbs目錄下重建pfile(initORACLE_SID.ora,本例為initlxdbtest.ora),除了以下三個參數(shù),其它參數(shù)都可以不用設(shè)置(使用默認(rèn)值):
db_name=lxdbtest
control_files='/home/oracle/app/oradata/lxdbtest/control01.ctl','/home/oracle/app/oradata/lxdbtest/control02.ctl','/home/oracle/app/oradata/lxdbtest/control03.ctl'
memory_target=2G
為了安全起見,控制文件一定要指定多份,在生產(chǎn)庫上,要把它們分開放在不同的物理磁盤上,這里因為是測試庫,所以才放在同一個磁盤上。
3. 啟動實例至nomount狀態(tài)
有了pfile就可以啟動實例至nomount狀態(tài)了:
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Thu Jul 25 21:01:16 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL startup nomount
ORACLE instance started.
Total System Global Area 2137886720 bytes
Fixed Size 2215064 bytes
Variable Size 1224737640 bytes
Database Buffers 905969664 bytes
Redo Buffers 4964352 bytes
SQL
4. 執(zhí)行CREATE DATABASE語句
CREATE DATABASE lxdbtest
LOGFILE GROUP 1
('/home/oracle/app/oradata/lxdbtest/redo01a.log','/data/oradata/lxdbtest/redo01b.log')
SIZE 100M BLOCKSIZE 512,
GROUP 2
('/home/oracle/app/oradata/lxdbtest/redo02a.log','/data/oradata/lxdbtest/redo02b.log')
SIZE 100M BLOCKSIZE 512,
GROUP 3
('/home/oracle/app/oradata/lxdbtest/redo03a.log','/data/oradata/lxdbtest/redo03b.log')
SIZE 100M BLOCKSIZE 512
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 600
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/home/oracle/app/oradata/lxdbtest/system01.dbf' SIZE 2048M REUSE AUTOEXTEND OFF
SYSAUX DATAFILE '/home/oracle/app/oradata/lxdbtest/sysaux01.dbf' SIZE 2048M REUSE AUTOEXTEND OFF
DEFAULT TABLESPACE users
DATAFILE '/home/oracle/app/oradata/lxdbtest/users01.dbf'
SIZE 2048M REUSE AUTOEXTEND OFF
DEFAULT TEMPORARY TABLESPACE temptbs
TEMPFILE '/home/oracle/app/oradata/lxdbtest/temp01.dbf'
SIZE 2048M REUSE AUTOEXTEND OFF
UNDO TABLESPACE undotbs
DATAFILE '/home/oracle/app/oradata/lxdbtest/undotbs01.dbf'
SIZE 2048M REUSE AUTOEXTEND OFF;
有幾點需要注意:
1)每個日志文件組的日志要放在不同的物理磁盤上,萬一有一個磁盤損壞,也不會丟失數(shù)據(jù)
2)根據(jù)需要選擇合適的字符集
3)創(chuàng)建了5個基本的表空間:SYSTEM,SYSAUX,默認(rèn)表空間,默認(rèn)臨時表空間,默認(rèn)UNDO表空間
5. 根據(jù)需要創(chuàng)建應(yīng)用程序所需的表空間
對于關(guān)鍵業(yè)務(wù)的數(shù)據(jù),應(yīng)該創(chuàng)建單獨的表空間給它使用(最好把表和索引分開放在表空間)
SQL create tablespace p95169tbs
2 datafile '/home/oracle/app/oradata/lxdbtest/p95169tbs01.dbf' size 10G,
3 '/home/oracle/app/oradata/lxdbtest/p95169tbs02.dbf' size 10G;
Tablespace created.
6. 構(gòu)建數(shù)據(jù)字典視圖
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql
7. 修改system,sys的密碼
alter user sys identified by ***;
alter user system identified by ***;
8. 創(chuàng)建SPFILE
SQL create spfile from pfile;
File created.
重啟數(shù)據(jù)庫后,將以spfile取代pfile.
最后,再順便說下如何刪除數(shù)據(jù)庫。在刪除數(shù)據(jù)庫之前,數(shù)據(jù)庫必須是在mount和restricted session狀態(tài),具體如下:
SQL startup mount
SQL alter system enable restricted session;
System altered.
SQL drop database;
Database dropped.
數(shù)據(jù)庫刪除成功后,所有的在線日志文件、數(shù)據(jù)文件都會一并被刪除,但歸檔日志和備份文件不會被刪除。
1、
下面要進行建庫,使用命令dbca
[oracle@redhat4 ~]$ dbca
-bash: dbca: command not found
顯示找不到命令
有dbca這個命令,但是找不到它,說明環(huán)境變量PATH設(shè)置有問題
設(shè)置環(huán)境變量PATH
[oracle@redhat4 ~]$ vi .bash_profile
在文件尾部加入下行
export PATH=$PATH:$ORACLE_HOME/bin:.
再重新登陸一下oracle用戶,使環(huán)境變量生效。
[root@redhat4 install]# su - oracle
運行dbca命令
----
2、
成功啟動 Database Configuration Assistant 數(shù)據(jù)庫配置助手開始建庫。
步驟1:操作
請選擇希望執(zhí)行的操作:
這個頁面顯示了我們通過dbca可以執(zhí)行的操作
這里我們選 創(chuàng)建數(shù)據(jù)庫
步驟2:選擇創(chuàng)建數(shù)據(jù)庫的模板
有一般用途、事務(wù)處理、定制數(shù)據(jù)庫、數(shù)據(jù)倉庫四種模板可供選擇。
四種模板參數(shù)和內(nèi)容有區(qū)別,而安裝中的區(qū)別在后面的步驟9 數(shù)據(jù)庫內(nèi)容 頁中的內(nèi)容
一般用途 事務(wù)處理 數(shù)據(jù)倉庫 三種模板在步驟9顯示的是:
實例方案標(biāo)簽頁,自己只能決定是否選擇實例方案組件
定制數(shù)據(jù)庫 模板在步驟9顯示的是:
數(shù)據(jù)庫組件標(biāo)簽頁,可以自己選擇組件,但是無法選擇實例方案組件
這里我們選擇 一般用途 模板
步驟3: 數(shù)據(jù)庫標(biāo)識
全局?jǐn)?shù)據(jù)庫名:jiagulun SID:jiagulun
步驟4: 管理選項
決定使不使用Enterprise Manager
em用java編寫,用ie訪問 如果選擇了它我們可以使用基于ie的工具管理oracle
推薦生產(chǎn)中使用。
步驟5: 數(shù)據(jù)庫身份證明
oracle建立中,在數(shù)據(jù)庫內(nèi)部默認(rèn)會建很多用戶
在這里只是學(xué)習(xí),給這些用戶設(shè)置相同的密碼,設(shè)為oracle。實際生產(chǎn)中可分別設(shè)置,并要保證密碼強度。
步驟6: 存儲選項
生產(chǎn)中ASM和裸設(shè)備使用非常多,而且ASM用的越來越多,
學(xué)習(xí)中我們使用文件系統(tǒng)。
步驟7: 數(shù)據(jù)庫文件所在位置
決定數(shù)據(jù)庫建在文件系統(tǒng)的那個目錄底下
這里是用 所有數(shù)據(jù)庫文件使用公共位置:{ORACLE_BASE}/oradata
這里可以自己選擇路徑,但自己要記住,方便以后使用。
步驟8: 恢復(fù)配置
指定快速恢復(fù)區(qū) 按默認(rèn)即可
步驟9:選上示例方案
學(xué)習(xí)中需要使用的一些案例,實際生產(chǎn)中沒有用。
步驟10:初始化參數(shù)
oracle數(shù)據(jù)庫是非常吃內(nèi)存的一個軟件,這里要設(shè)置oracle使用的內(nèi)存大小
這些參數(shù)事后可以調(diào)整
但字符集以后最好不要再調(diào)了,這里設(shè)定后,就不要改變了,以后調(diào)可能會出現(xiàn)問題
數(shù)據(jù)庫字符集選:ZHS16GBK-GBK 16位簡體中文,建議選AL32UTF8,實際生產(chǎn)中這兩種用的最多。
國外有企業(yè)分支機構(gòu)可以選AL32UTF8
國家字符集選:AL16UTF16
其它默認(rèn)
步驟11:數(shù)據(jù)庫存儲
決定oracle數(shù)據(jù)庫的三類文件 控制文件、數(shù)據(jù)文件、重做日志組 的 存儲位置
三類文件的內(nèi)容,有什么意義,放到存儲結(jié)構(gòu)中講。
步驟12:創(chuàng)建選項
選 創(chuàng)建數(shù)據(jù)庫
點完成
最后的確認(rèn)頁:
確認(rèn)自己在各步驟做的選擇后,點 確定 開始創(chuàng)建數(shù)據(jù)庫。
創(chuàng)建數(shù)據(jù)庫完成后,Database Configuration Assistant 給出完成頁面。
顯示的是:
數(shù)據(jù)庫創(chuàng)建完成。詳細信息在:/u01/app/oracle/product/10.2.0/db_1/cfgtoollogs/dbca/jiagulun 上的日志文件
數(shù)據(jù)庫參數(shù)文件名:/u01/app/oracle/product/10.2.0/db_1/dbs/spfilejiagulun.ora
Database Control URL 為:
這里還可以點擊 口令管理... 修改剛創(chuàng)建完成的oracle數(shù)據(jù)庫當(dāng)前所有已有用戶的密碼。
退出 后
數(shù)據(jù)庫創(chuàng)建最終完成。