知识大全 使用OTL调用Oracle的存储函数
Posted 函数
篇首语:仰天大笑出门去,我辈岂是蓬蒿人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用OTL调用Oracle的存储函数相关的知识,希望对你有一定的参考价值。
使用OTL调用Oracle的存储函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
OTL介绍
OTL 是 Oracle Odbc and DB CLI Template Library 的缩写 是一个C++操控关系数据库的模板库 最新版本 参见 下载地址
优点 a 跨平台
b 运行效率高 与C语言直接调用API相当
c 开发效率高 起码比使用起来更简单 更简洁
d 部署容易 不需要ADO组件 不需 framework 等
缺点
a 只有C++才可以使用她
b 说明以及范例不足(暂时性的)
总的说来 对于C++程序员而言 使用OTL操作关系数据库是最好的选择 其网站上有很多的范例 本人在这里对使用OTL调用Oracle的存储函数(存储函数比存储过程多个返回值)作一个示范 而其他的比如查询 更新 存储过程等就太简单了 直接看的范例
Oracle 存储函数 TEST 代码
( a In Integer b Out Integer c in out Integer d In Long ) Return Long
is
begin
b := a;
c := * c;
Return( < || d || > );
end;
说明 Oracle中的long不是C/C++中的长整型 而是varchar_long 对应着OTL中的otl_long_string 这是一种很复杂的类型 本人就用它来举例
C++调用TEST的代码
#include <string>
#include <iostream>
//#define OTL_ORA I // 使用这个宏就表示使用Oracle i的API 而不是ODBC API
#define OTL_ODBC // 使用这个宏就表示使用通用的ODBC API
#include otlv h
using namespace std;
void main( void )
otl_connect::otl_initialize();
try
otl_connect db;
db rlogon( Driver=Microsoft ODBC for Oracle;Server=ZZZ;Uid=XXX;Pwd=YYY; );
// db set_max_long_size(?); 如果varchar_long长度非常长 超过默认值的话 你需要这一句
otl_stream o( :E<varchar_long out> = call TEST( :A<int in> :B<int out> :C<int inout> :D<varchar_long in&g t; ) db );
o set_mit( );
int a = ;
int b = ;
int c = ;
otl_long_string d( abc );
otl_long_string e;
o << a << c << d;
o >> e >> b >> c;
cout << b = << b << \\n ;
cout << c = << c << \\n ;
cout << e = << e v << \\n ;
//mit();
db logoff();
catch( otl_exception& p )
cerr << p msg << \\n
<< p stm_text << \\n
<< p sqlstate << \\n
<< p var_info << \\n
<< endl;
说明 :E<varchar_long out> = call TEST( :A<int in> :B<int out> :C<int inout> :D<varchar_long in&g t; ) 这一句中的A B C D E就是一个名字 随各人喜欢可写成其他任何名称 但这个格式需要注意 它不是
call :Name <int out> := function( Name <int in>
也不是
call :Name <int out> \\\\:= function( Name <int in>
而是
:Name <int out> = call function( Name <int in>
cha138/Article/program/Oracle/201311/17501相关参考
Ibatis调用Oracle存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近开始接触
一无返回值的存储过程 存储过程为 CREATEORREPLACEPROCEDURETESTA(PARAINVARCHARPARAIN VARCHAR)
Oracle内部函数调用追踪器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 基于以前开发的一个
VFP中调用Oracle的存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! VFP由于其通
在Java中调用Oracle的过程和函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 内容或简
在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv
Jsp中调用Oracle存储过程的小例子 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! /*执行
调用Oracle数据库中的存储过程需要两步走 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 存储
知识大全 使用VB调用Oracle程序包内的存储过程返回结果集
使用VB调用Oracle程序包内的存储过程返回结果集 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在PB中调用外部函数[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ORACLE数据库的P