配置ORACLE的PRO*C環境

來源:互聯網
上載者:User

標籤:

1、訪問資料庫的方法
    在ORACLE資料庫管理和系統中,有三種訪問資料庫的方法;
    ⑴.用SQL*Plus, 它有SQL命令以互動的應用程式訪問資料庫;
    ⑵.用第四代語言應用開發工具開發的應用程式訪問資料庫,這些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等;
    ⑶.利用在第三代語言內嵌入的SQL語言或ORACLE庫函數調用來訪問。
    
        Pro*C就屬於第三種開發工具之一, 它把過程化語言C和非過程化語言SQL最完善地結合起來, 具有完備的過程處理能力,又能完成任何資料
    庫的處理品任務,使使用者可以通過編程完成各種類型的報表。在Pro*C程式中可以嵌入SQL語言,利用這些SQL語言可以完成動態地建立、修改和
    刪除資料庫中的表,也可以查詢、插入、修改和刪除資料庫表中的行,還可以實現事務的提交和復原。在Pro*C程式中還可以嵌入PL/SQL塊,以
    改進應用程式的效能,特別是在網路環境下,可以減少網路傳輸和處理的總開銷。

2、編譯過程
    Pro*C是oracle的先行編譯器是一種編程工具,通過它把SQL語句嵌入到C語言程式中,編譯過程如下:
    Pro*C源檔案(*.pc) -> C源檔案(*.c) -> 目標檔案(*.o) -> 可執行檔。
    
        先行編譯器把來源程式作為輸入,然後翻譯程式中嵌入的SQL語句,把它們轉化成對標準的ORACLE運行庫的調用,最後產生一個修改過的來源程式。
    通過對修改過的來源程式進行編譯、連結,形成可執行檔。

3、Pro*C標頭檔和庫檔案
    

    

4、Oracle先行編譯選項設定檔
    預設在$ORACLE_HOME/bin路徑下就有了可執行程式PROC以及相應的未經配置先行編譯環境。Pro*C先行編譯時的選項很多,可以把它放到一個檔案中
    .如果在先行編譯時不指定設定檔, 則預設設定檔是 $ORACLE_HOME/precomp/admin/pcscfg.cfg
    編輯pcscfg.cfg檔案:
        sys_include=(/opt/oracle/precomp/public,/usr/lib/gcc/i386-redhat-linux/4.1.1/include,/usr/lib/i386-redhat-linux4E/include/
        bits,/home/uriel/git-2.0.3/compat/vcbuild/include,/usr/lib/i386-redhat-linux4E/include)
        ltype=short
        
     此檔案的sys_include中應包含sqlca.h及sqlda.h所在的路徑(否則編譯時間報:‘sqlca’ 未聲明),我這裡為/opt/precomp/public。還需要包括
     stddef.h所在的路徑,我這裡為/usr/lib/gcc/i386-redhat-linux/4.1.1/include。如果這兩個檔案你也不知道在什麼位置,可以通過
        #find / -name "sqlca.h"
        #find / -name "stddef.h"
     來尋找。另外再將常用的標頭檔路徑加上即可,如/usr/include。

5、Oracle先行編譯選項
    
    

    

    

    
6、編譯過程舉例(具體實現可參考makefile部落格)
    第一步,對帶有嵌入式SQL的C代碼程式(通常此程式以.pc結尾,簡稱PC代碼)使用proc做一次先行編譯,將裡面的嵌入式SQL轉化為代表資料庫功能調用的C代碼。
    第二步,使用C編譯器將C代碼編譯串連(其中包含資料庫中的庫 libclntsh.so)成可執行檔。
    .pc->.c: $proc iname=sample1.pc oname=sample1.c
    .c->.o $cc –c sample1.c
    .o->可執行檔 $cc –L$ORACLE_HOME/lib –lclntsh –o sample1 sample1.o
    
    嵌入式C編譯時間還需連結-lclntsh庫(資料庫中的庫 libclntsh.so)

配置ORACLE的PRO*C環境

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.