ORACLE PROC开发.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ORACLE PROC开发 Proc也就是嵌入式C,与informix的ESQ/C有类似之处,本部分主要列出Proc与Esql的区别,相同部分请参见informix部分。 1.数组功能 Proc中支持使用宿主变量数组一次查询SELECT/插入INSERT多条记录。在某些情况下非常有用,但不具有移植性。 2.sqlca通讯区结构 struct sqlca { /* ub1 */ char sqlcaid[8]; /* b4 */ long sqlabc; /* b4 */ long sqlcode; struct { /* ub2 */ unsigned short sqlerrml; /* ub1 */ char sqlerrmc[70]; } sqlerrm; /* ub1 */ char sqlerrp[8]; /* b4 */ long sqlerrd[6]; /* ub1 */ char sqlwarn[8]; /* ub1 */ char sqlext[8]; }; 当MODE={ANSI13|ORACLE}时,要求说明SQLCA,不说明将导致编译或连接错误。当MODE={ANSI|ANSI14}时,SQLCA的说明是可选的,但必须说明一个SQLCODE状态变量。 说明形式: EXEC SQL INCLUDE sqlca; 当Proc源程序由多个文件组成时,sqlca说明在一个文件里,其他文件使用如下引用方式: #define SQLCA_STORAGE_CLASS extern 可通过定义符号SQLCA_INIT来初始化SQLCA。 字段说明: sqlcaid 初始化为sqlca,用于标示一个SQL通讯区。 sqlabc 保存SQL通讯区的长度,以字节为单位。 sqlcode 最近执行的SQL语句的状态。有以下值: 0:正确执行,没有错误和例外; 0:执行了语句,但出现了一个例外。如没有行找到; 0:未执行语句,出现错误。 在Oracle中,“记录没有找到”的错误码有两个:在ANSI模式下是100,在Oracle模式下是1403。 sqlerrm.sqlerrml 保存sqlerrm.sqlerrmc中信息文本的长度。 sqlerrm.sqlerrmc 保存与sqlcode相对应的错误信息文本,最长不超过70个字符。要获得超过70个字符的完整信息,需要使用sqlglm()函数。 sqlglm函数说明如下: sqlglm( message_buff, buffer_size, message_length ); 其中,message_buff是文本缓冲区; buffer_size存放缓冲区的长度,以字节为单位; message_length是错误信息的实际长度。 ORACLE错误信息的最大长度是512字节。 sqlerrp 保留,未使用。 sqlerrd sqlerrd[0]:保留; sqlerrd[1]:保留; sqlerrd[2]:保存当前sql语句处理的行数。当语句处理失败时,该值无定义,当处理过程中出错时,则该值为成功处理的记录数; sqlerrd[3]:保留; sqlerrd[4]:保存相对位移,指出在哪个字符位置开始出现(语法)分析错误。第一个字符的相对位移是0; sqlerrd[5]:保留。 sqlwarn 有8个元素,当有警告发生时,相应元素被设置位W。 sqlwarn[0]:如果其他标志被设置,则其也被设置。若其为空,则表示其他7个全部没有设置; sqlwarn[1]:如果字符数据输出到宿主变量时被截断,则设置该标志,对于数字数据被截断并不设置该标志。为了检查具体的截断情况,可查看宿主变量对应的指示变量,指示变量的值是列的原始长度。 sqlwarn[2]:未使用; sqlwarn[3]:如果查询选择的列数不等于宿主变量的个数,则设置该标志; sqlwarn[4]:如果DELETE和UPDATE语句没有WHERE子句,则设置该标志; sqlwarn[5]:当执行CREATE语句由于PL/SQL编译错误失败时,设置该标志; sqlwarn[6]:未使用; sqlwarn[7]:未使用。 sqlext 保留。 3.登录数据库 (1).登录到当前节点的缺省数据库 有如下三种形式: 形式1: EXEC SQL CONNECT :username IDENTIFIED BY :password; 其中,username和password是CHAR或VARCHAR类型的宿主变量,分别包含

文档评论(0)

精品报告 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档