知识大全 使用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存储过程

Ibatis调用Oracle存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近开始接触

知识大全 java调用oracle存储过程

  一无返回值的存储过程  存储过程为  CREATEORREPLACEPROCEDURETESTA(PARAINVARCHARPARAIN VARCHAR) 

知识大全 Oracle内部函数调用追踪器

Oracle内部函数调用追踪器  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  基于以前开发的一个

知识大全 VFP中调用Oracle的存储过程

VFP中调用Oracle的存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VFP由于其通

知识大全 在Java中调用Oracle的过程和函数

在Java中调用Oracle的过程和函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  内容或简

知识大全 一个简单的oracle分页存储过程的实现和调用

  在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv

知识大全 Jsp中调用Oracle存储过程的小例子

Jsp中调用Oracle存储过程的小例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /*执行

知识大全 调用Oracle数据库中的存储过程需要两步走

调用Oracle数据库中的存储过程需要两步走  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  存储

知识大全 使用VB调用Oracle程序包内的存储过程返回结果集

使用VB调用Oracle程序包内的存储过程返回结果集  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 在PB中调用外部函数[1]

在PB中调用外部函数[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE数据库的P