1. 程式人生 > >oracle thin和oci 區別

oracle thin和oci 區別

根據oracle的說法,java程式連線oracle資料庫時,用oci驅動要比用thin驅動效能好些。主要的區別是使用thin驅動時,不需要安裝oracle的客戶端,而使用oci時則要安裝oracle的客戶端。

  從使用thin驅動切換到oci驅動在配置來說很簡單,只需把連線字串java:oracle:thin:@hostip:1521:例項名換為java:oracle:[email protected]本地服務名即可。如:

  從jdbc:oracle:thin:@10.1.1.2:1521:shdb改成jdbc:oracle:oci8:@shdb

  但這裡這臺機需安裝oracle資料庫的客戶端並配置本地服務名,同時還需指定NLS_LANG環境變數,NLS_LANG環境變數是用來控制客戶端在顯示oracle資料庫的資料時所用的字符集和本地化習慣。通常把NLS_LANG的字符集部分指定為資料庫所用的字符集則就不會存在java顯示的亂碼問題了。

  對於oracle資料庫客戶端的安裝,有二種選擇,一是老實的用oracle資料庫的安裝光碟安裝對應版本的oracle客戶端。二是下載oracle提從的即時客戶端,即時客戶端是不用安裝的,把下載包解壓即可。

  要使java web正常的通過oci驅動訪問oracle,還需要客戶端正確的配置一下相關變數。主要如下:

  對於windows系統並使用oracle客戶端時:

  1. 把%ORACLE_HOME%\lib加到PATH環境變數.

  2. 把%ORACLE_HOME%\jdbc\lib\classes12.jar加到CLASSPATH環境變數裡.也可以把classes12.jar拷貝到tomcat的comman\lib目錄下。

  對於windows系統並使用oracle的即時客戶端時(假定即時客戶端解壓在d盤):

  1. 把d:\instantclient_10_2加到PATH環境變數

  2. 把d:\instantclient_10_2\classes12.jar加到CLASSPATH環境變數裡.也可以把classes12.jar拷貝到tomcat的comman\lib目錄下。

  對於linux系統並使用oracle客戶端時:

  1. 在使用tomcat的使用者主目錄下的.bash_profile檔案中加入

  exprot ORACLE_HOME=/u01/app/oracle/product/9.2.0.4

  export LD_LIBRARY_PATH=$ORACLE_HOME/lib

  2. 把classes12.jar拷貝到tomcat的comman\lib目錄下。

  對於linux系統並使用oracle即時客戶端時:

  1. 在使用tomcat的使用者主目錄下的.bash_profile檔案中加入

  exprot ORACLE_HOME=/instantclient_10_2

  export LD_LIBRARY_PATH=$ORACLE_HOME/lib

  2. 把instantclient_10_2目錄下的classes12.jar拷貝到tomcat的comman\lib目錄下。

  如果一個tomcat下帶了幾個應用,且幾個應用都要連線oracle資料庫時,則要注意的時,不要在每個應用的WEB-INF/lib目錄下放入 oracle的classes12.jar/zip檔案。而應該把classes12.jar/zip檔案放到tomcat的common/lib目錄下。否則會出來ojdbclib9/10庫重複載入的錯誤。

  使用oracle即時客戶端是,本地服務名的建立可以在目錄instantclient_10_2下建立tnsnames.ora下新增連線串,如:

SHDB =
     (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.236)(PORT = 1521)))
     (CONNECT_DATA =
        (SERVICE_NAME = shdb)
      )
)

總結:

相關推薦

oracle thinoci 區別

根據oracle的說法,java程式連線oracle資料庫時,用oci驅動要比用thin驅動效能好些。主要的區別是使用thin驅動時,不需要安裝oracle的客戶端,而使用oci時則要安裝oracle的客戶端。   從使用thin驅動切換到oci驅動在配置來說很簡單,只需把連線字串java:oracle:th

Oracle date timestamp 區別 原文出處: http://www.cnblogs.com/java-class/

1.DATE資料型別      這個資料型別我們實在是太熟悉了,當我們需要表示日期和時間的話都會想到date型別。它可以儲存月,年,日,世紀,時,分和秒。它典型地用來表示什麼時候事情已經發生或將要發生。     DATE資料型別的問題在於它表示兩個事件發生時間間隔的度量粒度是秒。這個問題將在稍後討論

Oracle DELETETRUNCATE 的區別

提交 acl trigge llb 刪除 dex 語句 val let 語法delete from aa truncate table aa 區別 1.delete from後面可以寫條件,truncate不可以。 2.delete from記錄是一條條刪的,所刪除的每行

Confluence 6 下載安裝 Oracle thin 驅動

Confluence基於許可證的考慮,我們不能將 Oracle 的驅動捆綁到 Confluence 中。如果你希望你的 Confluence 能夠連接到 Oracle 數據庫,你需要:停止 Confluence。進入 Database JDBC Drivers 頁面然後下載正確的驅動。驅動通常被命名為 ojd

oracle databaseclient版本的區別

database 是資料庫,你安裝到本機上,可以在本機上建立資料庫。client是客戶端,你只能通過client連線上別人機器上的資料庫。database 包含client的功能 客戶端是不需要安裝資料庫例項的;只有服務端才需要安裝。客戶端和服務端都可以使用slqplu

ORACLE資料庫NLS_CHARACTERSETNLS_NCHAR_CHARACTERSET區別

使用Select * from nls_database_parameter去檢視的字符集,發現查到兩個字符集,NLS_CHARACTERSET 和NLS_NCHAR_CHARACTERSET。如下: SQL> select * from nls_database_p

oracle inexist的區別 not in not exist的區別

in 是把外表和內表作hash join,而exists是對外表作loop,每次loop再對內表進行查詢。一般大家都認為exists比in語句的效率要高,這種說法其實是不準確的,這個是要區分環境的。 exists對外表用loop逐條查詢,每次查詢都會檢視exists的條件語句,當 e

Oracle spfilepfile的區別,生成,載入修復

oracle資料庫的配置檔案指的是系統在啟動到“nomount”階段需要載入的檔案,也叫做pfile或者spfile,但是其實pfile和spfile是不同的檔案。 不同的資料庫配置檔案是不同的,但是格式大體是近似的,預設地址是oracle安裝目錄下database 資料夾,例如:“c:

Oracle 函式儲存過程的區別聯絡 總結版

  oracle儲存過程與函式的區別 2017年08月15日 22:49:38 冷月葬花魂iiii 閱讀數:7800更多 個人分類: oracle 定義: 儲存過程(Stored Procedure )是一組為了完成特定功能的SQL 語句集

OracleSQLServer的增刪改查某些區別

一下午花在檢視約束名和刪除約束名,反反覆覆的執行,就為看看其中的區別,(借鑑CSDN使用者jkqiang885和a154832918,還借鑑了百度知道) 現在做個筆記,順便寫入建立約束,方便檢視!!! create table class--下面要引用外來鍵聯絡classno來知道cla

Oracle-09-刪除表(droptruncate區別、閃回刪除等)

一、如果既要刪除表中的資料也要刪除表的結構,請使用droptable語句,其格式如下: drop table 表名 drop table語句(是DDL語句)有如下特徵: (1)它刪除表中所有的資料

oracle 雙機熱備,oracle dataguard oracle rac的區別聯絡

Data Guard 是Oracle的遠端複製技術,它有物理和邏輯之分,但是總的來說,它需要在異地有一套獨立的系統,這是兩套硬體配置可以不同的系統,但是這兩套系統的軟體結構保持一致,包括軟體的版本,目錄儲存結構,以及資料的同步(其實也不是實時同步的),這兩套系統之間只要網路是通的就可以了,是一種異地容災的解

關係型資料庫非關係型資料庫區別oracle與mysql的區別

一、關係型資料庫     關係型資料庫,是指採用了關係模型來組織資料的資料庫。     關係模型是在1970年由IBM的研究員E.F.Codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流資料庫結構的主流模型。     簡單來說,關係模型指的

Oracle syssystem使用者、sysdba sysoper系統許可權、sysdbadba角色的區別 .

sys和system使用者區別 1)最重要的區別,儲存的資料的重要性不同 sys所有oracle的資料字典的基表和檢視都存放在sys使用者中,這些基表和檢視對於oracle的執行是至關重要的,由資料庫自己維護,任何使用者都不能手動更改。sys使用者擁有dba,sysdba,sysoper等角色或許可權,是o

sql(join中on與where區別) / NVL函式 / oracle儲存過程中isas區別 / JAVA呼叫資料庫儲存過程

left join :左連線,返回左表中所有的記錄以及右表中連線欄位相等的記錄。 right join :右連線,返回右表中所有的記錄以及左表中連線欄位相等的記錄。 inner join: 內連線,又叫等值連線,只返回兩個表中連線欄位相等的行。 full join:外連線,返回兩個表中的行:left jo

關於Oracle中執行儲存過程使用callexec區別說明

在sqlplus中這兩種方法都可以使用:  exec pro_name(引數1..);  call pro_name(引數1..);  區別:  1. 但是exec是sqlplus命令,只能在sqlplus中使用;call為SQL命令,沒有限制.  2. 儲存過程沒有

jdbc:oracle:thin:@localhost:1521:orcl與jdbc:oracle:thin:@//localhost:1521/orcl區別

Oracle Thin JDBC Driver驅動程式包名:ojdbc14.jar、ojdbc6.jar驅動程式類名: oracle.jdbc.driver.OracleDriverJDBC URL:

Oracle inner joinwhere區別

1 .WHERE子句中使用的連線語句,在資料庫語言中,被稱為隱性連線。INNER JOIN……ON子句產生的連線稱為顯性連線。(其他JOIN引數也是顯性連線)WHERE 和INNER JOIN產生的連線關係,沒有本質區別,結果也一樣。但是!隱性連線隨著資料庫語言的規範和發展,已經逐漸被淘汰,比較新的資料庫語言

Oracle logging nologging 的區別

[@[email protected]] redo log 記錄發生在oracle資料庫中的一舉一動,當你往表裡插入資料時候,如果表上存在索引,oracle會自動幫你維護這些索引。但是這個看似簡單的維護索引的工作背後有許多動作要做的,redo 就會生成這些全過程

ORACLE資料庫NLS_CHARACTERSETNLS_NCHAR_CHARACTERSET區別?

使用Select * from nls_database_parameter去檢視資料庫的字符集,發現查到兩個字符集,NLS_CHARACTERSET 和NLS_NCHAR_CHARACTERSET。如下: SQL> select * from nls_databas