C/C++封裝庫ocicpplib呼叫Oracle儲存過程的方法
工作這麼多年,一直使用Mysql, Oracle資料庫沒有接觸過, 這次要使用C/C++語言來呼叫Oracle的儲存過程, 懶得自己去看OCI的API了, 直接上網找別人封裝的庫, 最後發現了這個ocicpplib, 下載了看了一下, 還不錯, 使用起來比較簡單。下面就對我使用這個庫來呼叫儲存過程的例子說明一下, 對應呼叫其他的sql語句就不說了, 自己看demo, 很簡單的。
ocicpplib庫的下載地址為 :
http://ocicpplib.sourceforge.net/ 以前是這個地址可以下載,現在不行了。
用下面這個:
http://nchc.dl.sourceforge.net/project/ocicpplib/ocicpplib/0.5.6/ocicpplib-0.5.6.tar.gz
下面使用這個簡單的儲存過程來進行測試, 有兩個輸出引數, 一個為字串型別, 一個為整數型別。
CREATE OR REPLACE PROCEDURE P_TEST
(
ID IN int,
Name OUT varchar2,
Result OUT int
)
IS
tmpVar NUMBER;
/******************************************************************************
******************************************************************************/
BEGIN
tmpVar := 0;
Name := 'www.csdn.net';
Result := 123456;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END P_TEST;
下面的程式碼為呼叫程式碼
#include <ocicpp.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <string>
#include <sys/time.h>
#include <map>
#include <iostream.h>
using namespace OCICPP;
Connection g_OracleCon;
int main (int argc, char** argv)
{
db::init();
connect(g_OracleCon, "192.168.2.221/qatest", "root", "123456");
Cursor cur;
cur.drop();
char Name[128]={0};
int Result = 0;
short isNull = 0;
//g_OracleCon.prepare ("BEGIN P_CDN_GETTEST(1000, :resOut); END;", cur);
//cur.bind(param, val, &isNull);
std::string param1 = "Name";
std::string param2 = "Result";
g_OracleCon.prepare ("BEGIN P_TEST(1000, :Name, :Result); END;", cur);
cur.bind(param1, Name, sizeof(Name), &isNull);
cur.bind(param2, Result, &isNull);
cur.execute ();
printf ("Name=%s, Result=%d\n", Name, Result);
return 0;
}
就是如此簡單。。。。。
相關文章
- C#呼叫 oracle儲存過程C#Oracle儲存過程
- C#呼叫Oracle儲存過程C#Oracle儲存過程
- c / c + + 呼叫mysql儲存過程MySql儲存過程
- vb呼叫儲存過程的方法儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- 完整的分頁儲存過程以及c#呼叫方法儲存過程C#
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- 呼叫儲存過程儲存過程
- c#呼叫儲存過程小記C#儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- oracle goldengate 呼叫儲存過程案例OracleGo儲存過程
- Jsp中呼叫Oracle儲存過程JSOracle儲存過程
- C++庫封裝JNI介面——實現java呼叫c++C++封裝Java
- 使用C++/CLI呼叫C#封裝類庫C++C#封裝
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- Hibernate呼叫oracle儲存過程的問題Oracle儲存過程
- Winform呼叫儲存過程ORM儲存過程
- perl呼叫儲存過程儲存過程
- jdbc呼叫儲存過程JDBC儲存過程
- oracle父儲存過程呼叫子儲存過程procedure與輸出引數Oracle儲存過程
- 在儲存過程A中呼叫儲存過程B的結果儲存過程
- 用java呼叫oracle儲存過程總結JavaOracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程呼叫其他模式的儲存過程需要注意的地方儲存過程模式
- 儲存過程呼叫不同資料庫的資料儲存過程資料庫
- oracle的儲存過程Oracle儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- PB中呼叫儲存過程儲存過程
- php呼叫mssql儲存過程PHPSQL儲存過程
- java中呼叫儲存過程Java儲存過程
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- oracle 儲存過程重新編譯方法Oracle儲存過程編譯
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- Oracle儲存過程Oracle儲存過程
- 在C#中使用儲存過程的方法C#儲存過程
- php呼叫mysql儲存過程和函式的方法(轉)PHPMySql儲存過程函式