Ⅰ 新建Oracle資料庫的3種方法
以下是對新建Oracle資料庫的三種方法進行了詳細的分析介紹 需要的朋友可以過來參考下通過運行Oracle Database Configuration Assistant 創建 配置 或刪除資料庫(也可在命令行下輸入dbca) 用命令行的方式建立資料庫 通過運行自定義的批處理腳本(或create_ORACLE_SID bat(create_ORACLE_SID sql))來創建 配置 或刪除資料庫
詳述 通過運行Oracle Database Configuration Assistant 創建 配置 或刪除資料庫 建議不熟悉創建過程的DBA使用該方法 只需要根據選項「下一步」進行配置 最後生成資料庫的創建腳本(建議保留) 或者直接創建資料庫 優點 GUI方法使用方便 缺點 不過創建過程有些慢
用命令行的方式建立資料庫
復制代碼 代碼如下: CONNECT / AS SYSDBA STARTUP PFILE= C:oracleadmininit_testorcl ora NOMOUNT; CREATE DATABASE testOrcl DATAFILE /u /oracle/testOrcl/system dbf SIZE M LOGFILE GROUP ( /u /oracle/testOrcl/redo a log /u /oracle/testOrcl/redo b log ) SIZE K GROUP ( /u /oracle/testOrcl/redo a log /u /oracle/testOrcl/redo b log ) SIZE K CHARACTER SET ZHS CGB ;將資料庫直接從未建置狀態轉換到打開狀態 ALTER DATABASE OPEN;
刪除資料庫(Dropping a Database) SPOOL C:DROP_DATABASE BAT SELECT DEL ||NAME 刪除資料庫相關數據文件 FROM V$DATAFILE; SELECT DEL ||MEMBER 刪除數據重構日誌文件 FROM V$LOGFILE; SPOOL OFF;
優點 可以熟悉創建指令 創建原理 缺點 配置簡單 要求熟記命令行指令 通過運行自定義的批處理或SQL腳本(create_ORACLE_SID bat或create_ORACLE_SID sql)來創建
復制代碼 代碼如下: create_ORACLE_SID bat set ORACLE_SID= ORACLE_SID del C:ORACLE IdatabasepwdORACLE_SID ora C:ORACLE Ibinoradim new sid ORACLE_SID intpwd oracle startmode manual pfile C:ORACLE IadminORACLE_SIDpfileinit ora C:ORACLE Ibinsvrmgrl @C:_SIDrun sql C:ORACLE Ibinsvrmgrl @C:_SIDrun sql C:ORACLE Ibinoradim edit sid ORACLE_SID startmode auto ORACLE_SIDrun sql spool C:ORACLE IadminORACLE_SIDcreatecreatedb set echo on connect INTERNAL/oracle startup nomount pfile=C:ORACLE IadminORACLE_SIDpfileinit ora CREATE DATABASE ORACLE_SID LOGFILE C:ORACLE IoradataORACLE_SIDredo log SIZE K C:ORACLE IoradataORACLE_SIDredo log SIZE K MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY DATAFILE C:ORACLE IoradataORACLE_SIDsystem dbf SIZE M REUSE MAXDATAFILES MAXINSTANCES CHARACTER SET ZHT BIG NATIONAL CHARACTER SET ZHT BIG ; spool off ORACLE_SIDrun sql spool C:ORACLE IadminORACLE_SIDcreatecreatedb set echo on connect INTERNAL/oracle ALTER DATABASE DATAFILE C:ORACLE IoradataORACLE_SIDsystem dbf AUTOEXTEND ON; CREATE ROLLBACK SEGMENT SYSROL TABLESPACE "SYSTEM" STORAGE (INITIAL K NEXT K); ALTER ROLLBACK SEGMENT "SYSROL" ONLINE;Linux平台下Oracle的操作
下面對Oracle的操作都是在Linux平台下進行的! su Oracle sqlplus /logon connect test/test assysdba(test/test是Oracle用戶和密碼) startup lsnrctl 首選啟動資料庫 su Oracle sqlplus /nolog conn /as sysdba startup 然後啟動監聽: 進入/opt/Oracle/proct/ /bin/ lsnrctl start 運行shudown命令關閉資料庫 [Oracle@wing /Oracle]$ sqlplus" / as sysdba" //以sysdba用戶登陸資料庫 SQL> shutdown
啟動Oracle i 資料庫 [Oracle@wing bin]$ sqlplus " /as sysdba" SQL> startup
啟動Oracle i監聽程序 Oracle的監聽程序主要是為客戶端的連接提供介面 [Oracle@wing bin]$ lsnrctl LSNRCTL> start
關閉Oracle i監聽程序 [Oracle@wing bin]$ lsnrctl LSNRCTL> stop 先看看Oracle_SID 環境變數設置是否正確 i $ sqlplus /nolog SQL> connect / as sysdba SQL> startup $ lsnrctl start i $ svrmgrl SVRMGR> connect internal SVRMGR> startup $ lsnrctl start 在哪裡報錯?? 一般只要設置這 處就好了~ /etc/oratab ora :/Oracle/app/Oracle/proct/ :Y /etc/inittab oralce: :wait:/bin/su Oracle c /Oracle/app/Oracle/proct/ /bin/lsnrctl start Oracle: :wait:/bin/su Oracle c /Oracle/app/Oracle/proct/ /bin/dbstart
啟動步驟 su Oracle [Oracle@websvr Oracle]$ sqlplus /nolog SQL> connect / as sysdba SQL> startup SQL> quit [Oracle@websvr Oracle]$ lsnrctl start 可用 [Oracle@websvr Oracle]$ lsnrctl status 查看監聽是否已經啟動
lishixin/Article/program/Oracle/201311/19064
Ⅱ Oracle如何創建存儲過程和如何調用存儲過程
【delphi+oracle報表解決方案(一)】delphi中調用oracle的存儲過程(分帶返回遊標,不返回值兩種)
關鍵字: delphi ,oracle存儲過程,游標,返回數據集,報表註:delphi 6+ oracle 8.1.6一.創建包與包體1.附:建表aaclass為下面作測試用create table aaclass(CID VARCHAR2(50), CNAME VARCHAR2(50), pnumber NUMBER(10,0) );INSERT INTO aaclass values('c1', 'cn1', 10 ) ;
INSERT INTO aaclass values('c2', 'cn2', 40 ) ;
INSERT INTO aaclass values('c1', 'cn3', 30 ) ;
commit;2.建包:CREATE OR REPLACE PACKAGE PKG_JCCTEST1
AS type rc_class is ref cursor;
--求p1,p2的和與差,返回的多個值通過游標返回
procere GetSubAndSum2(p1 number,p2 number ,
ResultCursor out rc_class);
--查詢滿足條件的數據集,返回數據集通過游標返回
procere GetClass2(a in number,ResultCursor out rc_class ) ; --往表中插一條記錄,不返回結果集時,本人用AdoQuery調用(adodataset好象要求必須返回結果集)
procere InsertClass( p_cid varchar2 ,p_cname varchar2 ,
p_pnumber number) ;
end PKG_JCCTEST1; 3.建包體CREATE OR REPLACE PACKAGE BODY PKG_JCCTEST1
ASprocere GetSubAndSum2(p1 number,p2 number ,
ResultCursor out rc_class)
IS
BEGIN
open ResultCursor for
select p1-p2 as "sum", p1+p2 as "sub" from al;
END ;
procere GetClass2(a in number,ResultCursor out rc_class )
is
begin open ResultCursor for
select aaclass.* from aaclass where pnumber >a;end ;procere InsertClass( p_cid varchar2 ,p_cname varchar2 ,
p_pnumber number)
is
begin
insert into aaclass values(p_cid,p_cname,p_pnumber) ;
-- commit;
end ; 二.在delphi中利用AdoDataSet調用上述第一個存儲過程
1.利用AdoConnection1連接資料庫(驅動為 oracle Provider for OLE DB),
**並在連接字元串中加入這一節: PLSQLRSet=1; 如下所示:
Provider=OraOLEDB.Oracle.1;Password=KXD;Persist Security Info=True;User ID=KXD;Data Source=TEST3;PLSQLRSet=12.在窗體上加AdoDataSet1 指明連接為上述AdoConnection1,下面可以放一個按鈕,單擊按鈕就能調用第一步中創建的包過程,並返回數據集。代碼如下所示:
procere TForm1.Button1Click(Sender: TObject);
var
AResult , BResult : integer;
begin
ADODataSet1.Close ;
ADODataSet1.CommandType := cmdText ;
ADODataSet1.Parameters.Clear ; //***利用call方法調用oracle過程時,參數必須由?來傳, 即使你要傳的參數為常理
//輸出遊標的參數不需要指定!!!!!!,本來此函數帶三個參數,我們這里只需要傳兩個參數.
ADODataSet1.CommandText := '{call PKG_JCCTEST1.GetSubAndSum2(?,?)}' ; //***C 順序有關,createparam必須放在commandtext賦值語句之後. // 創建第一個參數,對應call中的第一個?,ftinteger為類型,10為長度,45為傳入的實參值
ADODataSet1.Parameters.CreateParameter('p1',ftinteger,pdinput,10,45);
//創建第二個參數,根據createparameter的順序 自動與call中的第二個參數對應
ADODataSet1.Parameters.CreateParameter('p2',ftinteger,pdinput,10,4); //下面調用ADODataSet1 的open方法,返回數據集(對應包過程的游標)
ADODataSet1.Open ; //根據存儲過程,數據集只有一條記錄,所以不需要用while do 來遍歷數據集,直接取數據了 //此處的欄位名根據包過程中的返回遊標 對應的欄位名來取
//定義的存儲過程返回遊標如: open ResultCursor for
// select p1-p2 as "sum", p1+p2 as "sub" from al;
//把對應的欄位值取出來即可
AResult := ADODataSet1.Fields.FieldByName('sub').Value ;
BResult := ADODataSet1.Fields.FieldByName('sum').Value ; //顯示結果
showmessage(inttostr(AResult)) ;
showmessage(inttostr(BResult)) ;end;
三.在delphi中利用AdoDataSet調用上述第二個存儲過程
還是利用上述的AdoDataSet1來調用第二個存儲過程,無需任何改動,加第二個按鈕,單擊時代碼如下:procere TForm1.Button2Click(Sender: TObject);
begin
ADODataSet1.Close ;
ADODataSet1.CommandType := cmdText ;
ADODataSet1.Parameters.Clear ; //***利用call方法調用oracle過程時,參數必須由?來傳, 即使你要傳的參數為常理
//輸出遊標的參數不需要指定!!!!!!,本來此函數帶兩個參數,我們這里只需要傳一個參數.
ADODataSet1.CommandText := '{call PKG_JCCTEST1.GetClass2(?)}' ; //***C 順序有關,createparam必須放在commandtext賦值語句之後. // 創建第一個參數,對應call中的第一個?,ftinteger為類型,10為長度,20為傳入的實參值
ADODataSet1.Parameters.CreateParameter('p1',ftinteger,pdinput,10,20);
//下面調用ADODataSet1 的open方法,返回數據集(對應包過程的游標)
ADODataSet1.Open ; while not ADODataSet1.Eof do
begin
showmessage('CID : '+string(ADODataSet1.FieldByName('CID').Value) +
'--CNAME :' + string(ADODataSet1.FieldByName('CNAME').Value) +
'--PNUMBER :' + string(ADODataSet1.FieldByName('PNUMBER').Value)
) ;
ADODataSet1.Next ;
end ;
end; 四 利用adoquery調用第三個過程,不返回數據集的procere TForm1.Button3Click(Sender: TObject);
begin
AdoQuery1.Close ;
AdoQuery1.Parameters.Clear ; AdoQuery1.SQL.Clear ; AdoQuery1.SQL.Add('{call PKG_JCCTEST1.GetSubAndSum2(?,?)}') ;
AdoQuery1.Parameters.CreateParameter('P1',ftstring,pdinput, 50,'c11') ;
AdoQuery1.Parameters.CreateParameter('P2',ftstring,pdinput, 50,'cn11') ;
AdoQuery1.Parameters.CreateParameter('P3',ftinteger,pdinput, 50,25) ; AdoQuery1.ExecSQL ;
end;
五 利用adoquery調用第一個過程,返回數據集的.
procere TForm1.Button4Click(Sender: TObject);
begin
AdoQuery1.Close ;
AdoQuery1.Parameters.Clear ; AdoQuery1.SQL.Clear ; AdoQuery1.SQL.Add('{call PKG_JCCTEST1.GetSubAndSum2(?,?)}') ;
AdoQuery1.Parameters.CreateParameter('P1',ftinteger,pdinput, 50,25) ;
AdoQuery1.Parameters.CreateParameter('P2',ftinteger,pdinput, 50,22) ; AdoQuery1.Open ; Showmessage(string( AdoQuery1.FieldByName('sub').Value)+'-'+
string( AdoQuery1.FieldByName('sum').Value));
end;六.關於三層體系的此類問題兩層的解決了,三層類似.
中間層用tadodataset 或tadoquery (+tdatasetprovider),中間層的adoconnection的連接字元串加上plsqlRset=1;
客戶端用clientdataset ,大同小異,舉例如下: begin
//調用相應的過程
ClientDataSet1.Close ;
ClientDataSet1.Params.Clear ; ClientDataSet1.CommandText := '{call PackageName.ProcereName(?,?)}' ;
ClientDataSet1.Params.CreateParam(ftInteger , 'ParamName1', ptInput) ;
ClientDataSet1.Open ;
end ;
本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/yzsind/archive/2005/01/20/261176.aspx
Ⅲ Oracle新建資料庫
Oracle新建資料庫可以參考以下操作方法:
1、首先點擊桌面左下角的開始圖標;
Ⅳ Oracle 11g 怎麼創建一個資料庫
使用oracle自帶的 Database Configuration Assistant ,然後按照工具的界面提示一步一步創建即可。
Ⅳ 如何使用oracle建立資料庫
在「歡迎」窗口,單擊下一步。步驟 2.從 DBCA, 步驟 1(共 8 個步驟):「操作」窗口,單擊創建資料庫。步驟 3.從步驟 2(共 8 個步驟):「資料庫模板」窗口,單擊常規用途模板,然後單擊下一步。步驟 4.從步驟 3(共 7 個步驟):「資料庫標識」窗口,在全局資料庫名稱欄位輸入 Tivoli Privacy Manager 資料庫的名稱然後單擊下一步。步驟 5.從步驟 4(共 7 個步驟):「資料庫連接選項」窗口,選擇在預設情況下您需要您的資料庫工作的模式。單擊未用模式或分享伺服器模式並單擊下一步。步驟 6.從步驟 5(共 7 個步驟):「初始化參數」窗口的字元集選項卡上,單擊使用 Unicode (AL32UTF8)。步驟 7.從「資料庫存儲器」窗口,單擊下一步。步驟 8.從步驟 7(共 7 個步驟):「創建選項」窗口,單擊完成。步驟 9.從「摘要」窗口,單擊確定來啟動創建資料庫。步驟 10.當資料庫創建過程完成時,單擊完成。步驟 11.提示輸入 SYSTEM 和 SYS 用戶標識密碼。這些用戶標識是資料庫的管理員標識。輸入密碼後,單擊退出