當前位置:首頁 » 操作系統 » c資料庫oracle

c資料庫oracle

發布時間: 2022-07-04 11:37:38

c語言程序連接oracle資料庫高可用報ora03115錯

可以的。
OracleDatabase,又名OracleRDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小微機環境。它是一種高效率的、可靠性好的、適應高吞吐量的資料庫方案。
C語言誕生於美國的貝爾實驗室,由丹尼斯·里奇(DennisMacAlistairRitchie)以肯尼斯·藍·湯普森(KennethLaneThompson)設計的B語言為基礎發展而來,在它的主體設計完成後,湯普森和里奇用它完全重寫了UNIX,且隨著UNIX的發展,c語言也得到了不斷的完善。為了利於C語言的全面推廣,許多專家學者和硬體廠商聯合組成了C語言標准委員會,並在之後的1989年,誕生了第一個完備的C標准,簡稱「C89」,也就是「ANSIC」,截至2020年,最新的C語言標准為2018年6月發布的「C18」。

㈡ oracle19c資料庫登錄慢

一般是由於監聽日誌(listener.log)文件過大導致的。
文件所在位置:$ORACLE_HOMEdiag nslsnr機器名listener race。
解決方法:1、關閉oracle的監聽服務2、將listener.log文件備份後清除(可將原文件直接重命名為listener-bak)。3、開啟監聽服務後即可登陸oralce。

㈢ c連接oracle資料庫的連接語句

我只會在unix下面寫,嘿嘿win的我還不會呢。。
把代碼貼上。至於怎麼
編譯,再查查吧~
int
main()
{
EXEC
sql
BEGIN
DECLARE
SECTION;
char
oc_passwd[101];
/*資料庫密碼*/
char
oc_userid[101];
/*資料庫用戶名*/
char
oc_dbname[101];
/*資料庫名*/
char
oc_coad[101];
EXEC
SQL
END
DECLARE
SECTION;
memset(oc_passwd,
0x00,
sizeof(oc_passwd));
memset(oc_userid,
0x00,
sizeof(oc_userid));
memset(oc_dbname,
0x00,
sizeof(oc_dbname));
/*取資料庫用戶名*/
strcpy(oc_userid,
"userid");
/*取資料庫用戶密碼*/
strcpy(oc_passwd,
"passwd")
;
/*取資料庫名*/
strcpy(oc_dbname,
"dbname");
EXEC
SQL
CONNECT
:oc_userid
IDENTIFIED
BY
:oc_passwd
USING
:oc_dbname;
if
(sqlca.sqlcode
!=
0)
{
printf("用戶名[%s]密碼[%s]資料庫[%s]\n",
oc_userid,
oc_passwd,
oc_dbname);
printf("連接資料庫失敗,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
/*讀table取coad欄位*/
memset(oc_coad,
0x00,
sizeof(oc_coad));
EXEC
SQL
SELECT
coad
INTO
:oc_coad
FROM
table
WHERE
1=1;
if
(sqlca.sqlcode
==
NORECORD)
{
printf("查詢無記錄\n");
return
-1;
}
else
if
(sqlca.sqlcode
!=
0)
{
printf("查詢失敗,sqlcode=%d\n",
sqlca.sqlcode);
return
-1;
}
return
0;
}

㈣ oracle資料庫原理是什麼,是C/S

資料庫除了系統表外,平時運用的就是對日誌和數據文件的存儲。SQLSERVER和sybase存儲方式是一樣的,是利用存儲設備對日誌和數據文件進行存儲,oracle是利用表空間對日誌和數據文件進行存儲;無論是sqlserver,Sybase還是oracle都有伺服器端和客戶端的區分,客戶端訪問伺服器端,需要伺服器端監聽服務的正確開啟,需要sqlnet.ora,listener.ora和tnsnames.ora的正確配置。舉個簡單的例子,如果一台oracle客戶端機器訪問oracle伺服器端,需要配置監聽,同樣在oracle客戶端上配置odbc,讓excel可以讀到oracle伺服器端的數據,也需要配置監聽服務,各種資料庫的伺服器端和客戶端的工作模式是一樣的。

㈤ C#中怎麼創建oracle資料庫

好像不行,都是用命令創建,創建如下:
在Oracle中建庫,通常有 兩種方法。一是使用Oracle的建庫工且DBCA,這是一個圖形界面工且,使用起來方便且很容易理解,因為它的界面友好、美觀,而且提示也比較齊全。在 Windows系統中,這個工具可以在Oracle程序組中打開(」開始」—「程序」—「 Oracle - OraDb10g_home1」—「 Configuration and Migration Tools」—「 Database Configuration Assistant」),也可以在命令行(」開始」—「運行」—「cmd」)工具中直接輸入dbca來打開。另一種方法就是手工建庫,這也就是下面所要講的內容。
手工建庫比起使用DBCA建庫來說,是比較麻煩的,但是如果我們學好了手工建庫的話,就可以使我們更好地理解Oracle資料庫的體系結構。手工建庫須要經過幾個步驟,每一個步驟都非常關鍵。它包括:
1、 創建必要的相關目錄
2、 創建初始化參數文件
3、 設置環境變數Oracle_sid
4、 創建實例
5、 創建口令文件
6、 啟動資料庫到nomount(實例)狀態
7、 執行建庫腳本
8、 執行catalog腳步本創建數據字典
9、 執行catproc創建package包
10、 執行pupbld
11、 由初始化參數文件創建spfile文件
12、 執行scott腳本創建scott模式
做完了以上的步驟之後就可以使用「SQL>alter database open;」打開資料庫正常的使用了。下面,我將具體地把以上的幾個步驟用實驗展開來講。
實驗系統平台:Windows Server 2000資料庫系統版本:Oracle Database 10G
Oracle的安裝路徑:D盤 創建的資料庫名稱:book
1、打開命令行工具,創建必要有相關目錄
C:\>mkdir D:\oracle\proct\10.1.0\admin\book
C:\>mkdir D:\oracle\proct\10.1.0\admin\book\bmp
C:\>mkdir D:\oracle\proct\10.1.0\admin\book\ump
C:\>mkdir D:\oracle\proct\10.1.0\admin\book\cmp
C:\>mkdir D:\oracle\proct\10.1.0\admin\book\pfile
C:\>mkdir D:\oracle\proct\10.1.0\admin\book\create
C:\>mkdir D:\oracle\proct\10.1.0\oradata\book
上面創建目錄的過程也可以在Windows的圖形界面中去創建。其中 D:\oracle\proct\10.1.0\admin\book目錄下的幾個子目錄主要用於存放資料庫運行過程中的跟蹤信息。最重要的兩上子目 錄是bmp和ump目錄,bmp目錄存放的是資料庫動行過程中的各個後台進程的跟蹤信息,當中alert文件是警告文件,其文件名稱為 alert_book.log,當資料庫出現問題時,首先就可以去查看此文件以找出原因,手工創建過程中出現的各種問題往往也可以通過查看這個文件找到原 因。Ump目錄存放和特定會話相關的跟蹤信息。D:\oracle\proct\10.1.0\oradata\book目錄存放各種資料庫文 件,包括控制文件、數據文件、重做日誌文件。
2、創建初始化參數文件
資料庫系統啟動時須要用初始化參數文件的設置分配內存、啟動必要的後台進程的。因此,初始化參數文件創建的是否正確、參數設置是否正確關系著整個建庫的「命運」。
創建初始化參數文件可以通過拷貝現在的初始化參數文件並將其做適當的修改即可,從而 不必要用手工去一句一句地寫出來,因為初始化參數文件的結構體系基本上都是一樣的。在我們安裝Oracle的時候,系統已經為我們安裝了一個名為orcl 的資料庫,於是我們可以從它那裡得到一份初始化參數文件。打開D:\oracle\proct\10.1.0\admin\orcl\pfile,找 到init.ora文件,把它拷貝到D:\oracle\proct\10.1.0\bd_1\databse下,並將其改名為 initbook.ora。接著用記事本的方式打開initbook.ora,修改以下的內容:
db_domain=""
db_name=book
control_files=("D:\oracle\proct\10.1.0\oradata\book\control01.ctl", "D:\oracle\proct\10.1.0\oradata\book\control02.ctl", "D:\oracle\proct\10.1.0\oradata\book\control03.ctl")
undo_management=AUTO
undo_tablespace=UNDOTBS1――注意此處的「UNDOTBS1」要和建庫腳步本中對應
background_mp_dest=D:\oracle\proct\10.1.0\admin\book\bmp
core_mp_dest=D:\oracle\proct\10.1.0\admin\book\cmp
user_mp_dest=D:\oracle\proct\10.1.0\admin\book\ump
3、打開命令行,設置環境變數oracle_sid
C:\>set oracle_sid=book
設置環境變數的目地是在默認的情況下,指定命令行中所操作的資料庫實例是book。
4、創建實例(即後台控制服務)
C:\>oradim –new –sid book
oradim是創建實例的工具程序名稱,-new表明執行新建實例,-delete表明執行刪掉實例,-sid指定害例的名稱。
5、創建口令文件
C:\>orapwd file=D:\oracle\proct\10.1.0\db_1\database\pwdbook.ora password=bookstore entries=2
orapwd是創建口令文件的工肯程序各稱,file參數指定口令文件所在的目錄和文件名稱,password參數指定sys用戶的口令,entries參數指定資料庫擁用DBA許可權的用戶的個數,當然還有一個force參數,相信您不指即明,這里就不再細述。
請注意,這里的命令要一行輸入,中間不得換行,否則會出現不必要的錯誤。
口令文件是專門存放sys用戶的口令,因為sys用戶要負責建庫、啟動資料庫、關閉資料庫等特殊任務,把以sys用戶的中令單獨存放於口令文件中,這樣資料庫末打開時也能進行口令驗證。
6、啟動資料庫到nomount(實例)狀態
C:\>sqlplus /nolog
SQL*Plus:Release 10.1.0.2.0 - Proction on 星期三 6月 29 23:09:35 2005
Copyright 1982,2004,Oracle. All rights reserved.
SQL>connect sys/bookstore as sysdba ---這里是用sys連接資料庫
已連接到空閑常式
SQL>startup nomount
ORACLE 常式已經啟動。
Total System Global Area 319888364bytes
Fixed Size 453612bytes
Variable Size 209715200bytes
Database Buffers 109051904bytes
Redo Buffers 667648bytes
SQL>
7、執行建庫腳本
執行建庫腳本,首先要有建庫的腳本。(去哪找建庫腳本呢?我又沒有!)不用著急,請接著往下看。
得到一個符合自己要求的建庫腳本有兩種方法,一種方法是在自己的電腦上用DBCA來 建,接照它的提示一步步地去做,在做到第十二步的時候,請選擇「生成建庫腳本」,然後就大功告成,你就可以到相應的目錄上去找到那個腳本並適當地修它便可 便用。另一種方法就是自己手工去寫一份建庫腳本,這也是這里要見意使用的方法,用記事本編輯如下的內容,並將其保存為文件名任取而後綴名為(*.sql) 的SQL腳本,這里保存到E盤根本錄下且文件名稱為book.sql。
Create database book
datafile 'D:\oracle\proct\10.1.0\oradata\book\system01.dbf' size 300M reuse autoextend on next 10240Kmaxsize unlimited
extent management local
sysaux datafile 'D:\oracle\proct\10.1.0\oradata\book\sysaux01.dbf'
size 120M reuse autoextend on next 10240K maxsize unlimited
default temporary tablespace temp
tempfile 'D:\oracle\proct\10.1.0\oradata\book\temp01.dbf' size 20M reuse autoextend on next 640K maxsize unlimited
undo tablespace "UNDOTBS1" --請注意這里的undo表空間要和參數文件對應
datafile 'D:\oracle\proct\10.1.0\oradata\book\undotbs01.dbf' size 200M reuse autoextend on next 5120K maxsize unlimited
logfile
group 1 ('D:\oracle\proct\10.1.0\oradata\book\redo01.log') size 10240K,
group 2 ('D:\oracle\proct\10.1.0\oradata\book\redo02.log') size 10240K,
group 3 ('D:\oracle\proct\10.1.0\oradata\book\redo03.log') size 10240K
接著就執行剛建的建庫腳本:
SQL>start E:\book.sql
8、執行catalog腳步本創建數據字典
SQL>start D:\oracle\proct\10.1.0\db_1\rdbms\admin\catalog.sql
9、執行catproc創建package包
SQL>start D:\oracle\proct\10.1.0\db_1\rdbms\admin\catproc.sql
10、執行pupbld
在執行pupbld之前要把當前用戶(sys)轉換成system,即以system賬戶連接資料庫。因為此資料庫是剛建的,所以system的口令是系統默認的口令,即manager。你可以在資料庫建好以後再來重新設置此賬戶的口令。
SQL>connect system/manager
SQL>start D:\oracle\proct\10.1.0\db_1\sqlplus\admin\pupbld.sql
11、由初始化參數文件創建spfile文件
SQL>create spfile from pfile;
12、執行scott腳本創建scott模式
SQL>start D:\oracle\proct\10.1.0\db_1\rdbms\admin\scott.sql
13、把資料庫打開到正常狀態
SQL>alter database open;
14、以scott連接到資料庫(口令為tiger),測試新建資料庫是否可以正常運行
至此,整個資料庫就已經建好了。接著你就可以在此資料庫上建立自己的賬戶和表空間啦以及資料庫對象,這里就不再作更多地敘述

㈥ c程序通過什麼連接oracle

一般C語言連接oracle資料庫通過使用oracle提供的OCI介面和PROC編程介面兩種方式。
OCI方式純粹是一些函數介面。
PROC是oracle提供的一種C與ORACLE
SQL的混合編程。程序(以.pc為後綴)編好之後,使用oracle提供的proc預編譯程序,將pc文件編譯成c文件(這一過程,相當於將SQL轉換為OCI的介面),然後再使用c語言編譯器生成可以執行文件。
OCI方式不容易入門,它擁有大量的介面函數,要很快熟悉它,非常難。但OCI方式的編程效率很高。
porc方式簡單易用。可用於對性能要求不太高的項目。

㈦ 請教:C語言來對ORACLE資料庫中記錄進行處理

用資料庫是主資料庫的一個事務一致性拷貝。使用主資料庫一個備份拷貝,你可以創建最多9個備用資料庫,在一個Data Guard配置相互協作。
一旦創建,Data Guard自動維護每一個備用資料庫,通過從主資料庫傳輸重做數據,然後在備用資料庫上應用重做。類似於主資料庫,備用資料庫可以是一個單實例資料庫,也可以是一個RAC(Real Application Clusters)資料庫。

㈧ ORACLE資料庫是用C語言編寫的嗎

不是,是使用sql與pl/sql語言操作的。

SQL(Structured Query Language)結構化查詢語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統。同時也是資料庫腳本文件的擴展名。

pl/sql語言是sql語言的擴展,pl/sql中可以嵌入sql語言。
塊是pl/sql的基本單位,編寫pl/sql程序實際是編寫pl/sql塊

㈨ c語言訪問oracle資料庫有幾種方式,哪種最好

SQL SERVER連接oracle資料庫幾種方法--1 方式 --查詢oracle資料庫中的表 SELECT * FROM OPENDATASOURCE( 'MSDAORA', 'Data Source=GE160;User ID=DAIMIN;Password=DAIMIN' )..

㈩ c#怎麼鏈接資料庫oracle資料庫

一:通過System.Data.OracleClient(需要安裝Oracle客戶端並配置tnsnames.ora)
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OracleClient;
3.
string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=RACE;";
OracleConnection conn = new OracleConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
二:通過System.Data.OracleClient(需要安裝Oracle客戶端不需配置tnsnames.ora)
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OracleClient;
3.
string connString = "User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OracleConnection conn = new OracleConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
三:通過System.Data.OleDb和Oracle公司的驅動
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString = "Provider=OraOLEDB.Oracle.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection conn = new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
四:通過System.Data.OleDb和微軟公司的Oracle驅動
1. 添加命名空間System.Data.OracleClient引用
2. using System.Data.OleDb;
3.
string connString = "Provider=MSDAORA.1;User ID=IFSAPP;Password=IFSAPP;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RACE)))";
OleDbConnection cnn = new OleDbConnection(connString);
try
{
conn.Open();
MessageBox.Show(conn.State.ToString());
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
備註:
a.XP操作系統已經安裝了微軟公司的Oracle驅動C:\Program Files\Common Files\System\Ole DB\msra.dll
b.該驅動需要Oracle客戶端的三個文件(oraocixe10.dll、oci.dll、ociw32.dll)放在System32下即可
五:使用ODP連接
1. 下載安裝ODP.NET(http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html)
2. 安裝完全成後會產生一序列文件。
3. 找到這個安裝目錄,打開文件夾%ORACLE_HOME%\Network\Admin在這個下面建立一個tnsnames.ora的文件,其內容可以參考其下的Sample目錄下面的配置
Oracle.RACE =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=127.0.0.1)
(PORT=1521)
)
)
(CONNECT_DATA=
(SID=RACE)
(SERVER=DEDICATED)
)
)
Oracle.RACE為連接字元串名稱,可以隨便取。等號後面的字元串可以在Enterprise Manager Console工具中連接資料庫後的TNS描述符中拷過來
4. 引用Oracle.DataAccess命名空間
5. using Oracle.DataAccess.Client;
6. 示例代碼:
string connString = "DATA SOURCE=Oracle.RACE;PERSIST SECURITY INFO=True;USER ID=IFSAPP;password=IFSAPP";
OracleConnection conn = new OracleConnection(connString);
try
{
conn.Open();
OracleCommand cmd = new OracleCommand(cmdText,conn);
OracleDataReader reader = cmd.ExecuteReader();
this.DataGridView1.DataSource = reader;
this.DataGridView1.DataBind();
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}
六:使用第三方驅動
第三方驅動有 Devart,下載驅動 http://www.devart.com/dotconnect/oracle/,但是是商業版,需要購買許可或破解
連接格式 User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
1. 引用Devart.Data.Oracle命名空間
2. using Devart.Data.Oracle;
3.
OracleConnection conn = new OracleConnection();
conn.ConnectionString = "";
conn.Unicode = true;
conn.UserId = "IFSAPP";
conn.Password = "IFSAPP";
conn.Port = 1521;
conn.Server = "127.0.0.1";
conn.Sid = "RACE";
try
{
conn.Open();
//execute queries, etc
}
catch (Exception ex)
{
ShowErrorMessage(ex.Message.ToString());
}
finally
{
conn.Close();
}

熱點內容
hp存儲擴容 發布:2024-11-17 23:29:16 瀏覽:569
在ftp中put表示什麼 發布:2024-11-17 23:29:12 瀏覽:383
mvc多文件上傳 發布:2024-11-17 23:13:56 瀏覽:155
玩游戲硬碟緩存32m 發布:2024-11-17 23:03:42 瀏覽:525
藍光存儲系統 發布:2024-11-17 23:03:41 瀏覽:436
地平線4提示配置低於最低怎麼辦 發布:2024-11-17 22:54:38 瀏覽:610
注冊銀行卡賬戶密碼填什麼 發布:2024-11-17 22:54:35 瀏覽:537
java壓縮上傳圖片 發布:2024-11-17 22:26:59 瀏覽:627
plc編程課件 發布:2024-11-17 22:18:23 瀏覽:469
我的世界伺服器信號一直在檢測 發布:2024-11-17 22:09:52 瀏覽:547