📄 otl3_ex23.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD> <TITLE>OTL 4.0, Example 23 (Oracle stored procedure)</TITLE> <META NAME="Author" CONTENT="Sergei Kuchin"> <META NAME="GENERATOR" CONTENT="Mozilla/3.03Gold (Win95; I) [Netscape]"> <META NAME="KeyWords" CONTENT="OTL, Oracle, ODBC, DB2, CLI, database API, C++, Template Library"></HEAD><BODY><H1 ALIGN=CENTER>OTL 4.0, Example 23 (Oracle stored procedure call)</H1><H1><A NAME="example1"></A>Example 23 (Oracle stored procedure call)</H1><P>This example demonstrates a stored procedure call.</P><H2>Source Code</H2><PRE>#include <iostream>using namespace std;#include <stdio.h>#define OTL_ODBC // Compile OTL 4.0/ODBC#include <otlv4.h><A HREF="otl3_connect_class.htm">otl_connect</A> db; // connect objectvoid stored_proc(void)// invoking stored procedure{ <A HREF="otl3_stream_class.htm">otl_stream</A> o(1, // buffer size should be equal to 1 in case of stored procedure call "{call my_proc(" " :A<int,inout>, " " :B<char[31],out>, " " :C<char[31],in> " ")}", // stored procedure call db // connect object ); o.<A HREF="otl3_stream_class.htm#set_commit">set_commit</A>(0); // set stream auto-commit off since // the stream does not generate transaction o<<1<<"Test String1"; // assigning :1 = 1, :3 = "Test String1" int a; char b[31]; o>>a>>b; cout<<"A="<<a<<", B="<<b<<endl;}int main(){ <A HREF="otl3_connect_class.htm">otl_connect::otl_initialize</A>(); // initialize ODBC environment try{ db.rlogon("uid=scott;pwd=tiger;dsn=my_db"); // connect to data source MY_DB <A HREF="otl3_const_sql.htm">otl_cursor::direct_exec</A> ( db, "CREATE OR REPLACE PROCEDURE my_proc " " (A IN OUT NUMBER, " " B OUT VARCHAR2, " " C IN VARCHAR2) " "IS " "BEGIN " " A := A+1; " " B := C; " "END;" ); // create stored procedure stored_proc(); // invoking stored procedure } catch(otl_exception& p){ // intercept OTL exceptions cerr<<p.msg<<endl; // print out error message cerr<<p.code<<endl; // print out error code cerr<<p.var_info<<endl; // print out the variable that caused the error cerr<<p.sqlstate<<endl; // print out SQLSTATE message cerr<<p.stm_text<<endl; // print out SQL that caused the error } db.logoff(); // disconnect from the data source return 0;} </PRE><H2>Output</H2><PRE> A=2, B=Test String1<HR WIDTH="100%"></PRE><CENTER><P><A HREF="otl3_examples.htm">Examples</A> <A HREF="otl3.htm">Contents</A><A HREF="home.htm">Go Home</A> </P></CENTER><P>Copyright © 1996, 2008, Sergei Kuchin, email: <A HREF="mailto:skuchin@aceweb.com">skuchin@aceweb.com</A>,<A HREF="mailto:skuchin@gmail.com">skuchin@yahogmail</A><SCRIPT Language="JavaScript"><!-- hide from old browsers var modDate = new Date(document.lastModified) document.write("<i> Last Updated:</i> " + (modDate.getMonth()+1) + "/" + modDate.getDate() + "/" + "0"+(modDate.getYear())%100+"."); //--> </SCRIPT>.</P><P><I>Permission to use, copy, modify and redistribute this document forany purpose is hereby granted without fee, provided that the above copyrightnotice appear in all copies. </I></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -