訪問Oracle時用戶端(或者web伺服器)得安裝一個Oracle的用戶端,這個有點不爽,SQL Server不用呀,MySQL頂多來個MySql.Data.dll 就搞定。尋覓了很久找到一個相對苗條的用戶端,才12M多、小巧實用呀。安裝後如下:
一個類似查詢分析器的串連與查詢工具,一個設定檔(很重要)。
啟動串連工具
輸入帳號資訊,對應的是連接字串的user id,password,datasource
串連成功後就可以查詢了,這玩意看起來想windows程式,貌似像是一個dos命令列工具,輸入完sql得選擇"檔案/運行" 執行SQL
設定檔(使用前應該先配置此檔案),因為是精簡版,沒有圖形化工具配置,所有就Notepad了
#DATABASENAME =
# (DESCRIPTION =
# (ADDRESS_LIST =
# (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
# )
# (CONNECT_DATA =
# (SERVICE_NAME = servicename)
# )
# )
更改這個注釋過的例子配置
myOracle =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 33.33.33.33)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mysid)
)
)
其中,myOracle是隨便起的名子,連接字串的data source=這裡的myOracle;HOST,PORT不用說了;SERVICE_NAME = mysid 填服務端資料庫執行個體的SID,這裡應該是確定了那個資料庫了。
配置完成後就可以在程式中訪問Oracle,以下舉例擷取一個表的資料顯示在頁面
using System.Data.OracleClient;
OracleConnection con = new OracleConnection("Data Source=myOracle;user id=xxx;password=xxx;");
OracleCommand cmd = new OracleCommand("select * from table", con);
con.Open();
OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
--顯示所有表資訊,類似mysql的show tables
select * from all_tables
--顯示前幾條,類似sqlserver的select top
select * from tb WHERE ROWNUM <=5
--from表名應該為OWNER.TABLE_NAME
select * from ms.mytable
--參數符號不同,oracle中為: sqlserver中為@ mysql中為?
select * from tab where id=:myid