用动态SQL方法4连接Oracle的实现(第1.0版)

摘要

动态SQL的第4种方法通过SQLDA(The SQL Descriptor Area)和oracle内部交换数据,可以执行直到程序运行时还不知道选择表项或虚拟输入宿主变量的个数和类型的SQL语句。

模块 oracle 的数据

jmp_buf jmp_continue   保存程序断点
FILE* ORAin stdin 默认输入源
FILE* ORAout stdout 默认输出源
Int ORAresult 0 错误标志
Char* Dml_commands[] 数据操纵语句动词表
ORAquery Query   包装SQL执行过程
ORAqueryBase pQuery &query 为外部提供接口

与外部的接口

  • ORAin,ORAout: 应用程序通过操纵这两个变量改变oracle模块的输入输出源。
  • ORAresult:oracle模块的执行结果(有待细分错误原因)。
  • ORAconnect(user,password),ORAdisconnect():与数据库建立与断开连接,必须在执行任何SQL语句前建立连接。
  • JMP_FOR_ERROR(label):如果oracle模块出现错误便转到标号label处继续执行,建立连接时出错除外。
  • ORAqueryBase* pQuery:见抽象类ORAqueryBase的说明。

抽象类 ORAqueryBase

返回数据类型 方法名称 参数 描述
int set int,int,int 设置SQL描述区的大小
int Alloc   分配SQL描述区
int get_statement   从输入源读取SQL语句
int set_statement] const char* 以字符串格式输入SQL语句
int execute   执行准备好的SQL语句
int free   释放SQL描述区

参考资料

《programmer''s Guide to the Oracle Precompilers》Release 1.8

《C++高级参考手册》

时间: 2024-08-01 08:34:22

用动态SQL方法4连接Oracle的实现(第1.0版)的相关文章

pl/sql developer-PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符

问题描述 PL/SQL Developer 远程连接Oracle 报错无法解析指定的标识符 环境: 虚拟机中安装CentOS 6.3 CentOS安装Oracle 11gr2 客户机Win7 问题介绍: 已经在CentOS 启动了实例,监听: 开放了1521端口:虚拟机跟客户机网络连通: 使用DBVisualizer可以连接成功目标实例: PL/SQL Dev连接就报错"ORA-12154: TNS:could not resolve the connect identifier specifi

使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库(转)

1,先到Oracle网站下载Instant Client : http://www.oracle.com/technology/global/cn/software/tech/oci/instantclient/index.html 根据你的操作系统选择不同的Instant Client版本 下载回是一个压缩文件,解压之后的文件夹叫:D:/instantclient_11_2.放在你喜欢的目录即可.例如:D:/instantclient_11_2 2.在D:/instantclient_11_2

ASP动态网页制作中连接Oracle数据库的例子

oracle|动态|数据|数据库|网页 下面这段代码能够显示,当前用户所能够看到的所有的用户和表,有兴趣的, 可以把每个表的内容上. <%Dim objOraSession,objOraDbDim strDbUser,strDbPwd,strDbConnCall ConnectDB()Sub ConnectDB() '连接数据库  On Error Resume Next strDbUser  = "tmpUser"     '连接用户名 strDbPwd  = "rt

使用Oracle的DBMS_SQL包执行动态SQL语句

引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用DBMS_SQL包执行动态SQL语句:   DECLARE        v_cursor NUMBER;        v_stat NUMBER;        v_row NUMBER;        v_id

JSP连接ORACLE数据库时注意的一些问题

js|oracle|数据|数据库|问题 一.如何去处理Clob.BLOB的大类型 CLOB可用于存放大文本数据,最多可存储4GB数据,在应用开发中比较常见.java提供的sql.Clob类与之对应.它提供两个方法来读取Clob的数据: getCharacterStream() 方法返回按unicode编码的输入流(java.io.Reader对象) getAsciiStream() 方法返回按ASCII编码的输入流(java.io.InputStream对象) 所以如果你的数据库中有可能存储中文

甲骨文推出Oracle Agile 商务智能 3.0版

甲骨文公司今天宣布,为了促进客户的新产品开发与上市推出了新的基于开放标准的预置集成软件包,该软件包实现了从Oracle Agile产品生命周期管理(Oracle Agile Product Lifecycle Management,简称Oracle Agile PLM)软件到Oracle电子商务套件的集成. 甲骨文还推出了Oracle Agile PLM商务智能3.0版,以帮助客户在新产品开发与上市过程中做出更好的决策. Oracle Agile PLM获得了配置管理协会(Institute o

plsql连接oracle数据库报ora 12154错误解决方法_oracle

plsql连接oracle数据库报ora 12154错误 今天遇到一个问题,使用sqlplus能够连接到远程的数据库,但是使用plsql却连接不上,报错"ORA-12154: TNS: 无法解析指定的连接标识符" 解决方法如下: 1.先检查服务器端的监听服务是否打开,如果没有打开请启动其监听 客户端:tnsping <tns_name> 服务器Linux下: #>lsnrctl status 查看监听状态 #>lsnrctl start 启动监听 2.通过Sql

Oracle基础 动态SQL语句

原文:Oracle基础 动态SQL语句 一.静态SQL和动态SQL的概念. 1.静态SQL 静态SQL是我们常用的使用SQL语句的方式,就是编写PL/SQL时,SQL语句已经编写好了.因为静态SQL是在编写程序时就确定了,我们只能使用SQL中的DML和事务控制语句,但是DDL语句,以及会话控制语句却不能再PL/SQL中直接使用,如动态创建表或者某个不确定的操作时,这就需要动态SQL来实现. 2.动态SQL 动态SQL是指在PL/SQL编译时SQL语句是不确定的,如根据用户输入的参数的不同来执行不

php连接oracle数据库及查询数据的方法_php技巧

本文实例讲述了php连接oracle数据库及查询数据的方法.分享给大家供大家参考.具体分析如下: php有强大的功能不但可以支持mysql,mssql,mysqli之个我们还可以与oracle数据连接,要让php支持oracle非常的简单我们只要把php.ini中的;extention = php_oci8.dll分号去掉即可. php支持oracle连接函数 php.ini文件中的配置,去掉 ;extention = php_oci8.dll,去掉前面的分号,重启apache就可以了,如果不行